Отображение в списке статуса наличия оригиналов закрывающих документов Поступлений Этой статьей мы начинаем серию "Хотелок " - то что бухгалтера, менеджеры и т.д. просят добавить в программу 1С для удобства своей работы.
Хотелка : Необходимо для каждого документа Поступление товаров и услуг добавить выбор статуса наличия оригиналов Документов.
В компании огромный документооборот, по 50 документов в день - менеджеры затягивают или чаще забывают предоставить оригиналы документов нужен информативный статус с возможностью отбора по статусу и вывода списка на печать:
Решение: 1. В документ поступление добавлен выбор статуса наличия документов
2. В список документов поступлений добавлена информативная колонка с выделением статусов по цветам:
Для данной колонки работает стандартный механизм отборов, что позволяет быстро фильтровать документы по статусу
Как это сделали: Данная задачка до банальности проста, поэтому особо долго не думали и реализовали следующим способом:
1. Документ Поступление товаров и услуг, добавили переключатель
2. В список документов добавили колонку Статус документа:
3. В модуле списка в процедуре ДокументСписокПриПолученииДанных добавили:
Код 1C v 8.х
Для Каждого Строка Из ОформленияСтрок Цикл
Если Строка. ДанныеСтроки. Ссылка. ТипОригинал = 0 Тогда
Строка. Ячейки. СтатусДокумента. УстановитьТекст( "Нет" ) ;
Строка. Ячейки. СтатусДокумента. ЦветФона = Новый Цвет( 255 , 87 , 87 ) ;
ИначеЕсли Строка. ДанныеСтроки. Ссылка. ТипОригинал = 1 Тогда
Строка. Ячейки. СтатусДокумента. УстановитьТекст( "Скан" ) ;
Строка. Ячейки. СтатусДокумента. ЦветФона = Новый Цвет( 255 , 255 , 153 ) ;
ИначеЕсли Строка. ДанныеСтроки. Ссылка. ТипОригинал = 2 Тогда
Строка. Ячейки. СтатусДокумента. УстановитьТекст( "Оригинал" ) ;
Строка. Ячейки. СтатусДокумента. ЦветФона = Новый Цвет( 155 , 255 , 155 ) ;
КонецЕсли ;
КонецЦикла ;
Результат : Теперь бухгалтер быстро фильтрует документы по статусу и менеджеру - печатает реестр, далее менеджер занимается получением оригиналов от контрагентов.
Если Вы столкнулись с подобной проблемой!?
Хотите автоматизировать аналогичный процесс - Обращайтесь, Мы поможем Вам! - Контакты > 1С Программирование
Категория:
1С Бухгалтерия 2.0 Как запретить создание документа копированием? Бывает, нужно программно запретить копирование документа , в данной статье несколько способов реализации этого:
Код 1C v 8.2 УП Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Параметры. ЗначениеКопирования. Пустая( ) Тогда
Отказ = Истина ; СтандартнаяОбработка = Ложь ;
КонецЕсли ;
КонецПроцедуры
В перед открытием
Код 1C v 8.х Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ЭтоНовый( ) Тогда
Если ЗначениеЗаполнено( ПараметрОбъектКопирования) Тогда
Если ПараметрОбъектКопирования. Дата < Дата( "20100101000000" ) Тогда
Отказ = Истина ;
Сообщить( "Копирование документов заданного периода запрещено. Операция прервана" ) ;
КонецЕсли ;
КонецЕсли ;
КонецЕсли ;
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ЭтаФорма. ПараметрОбъектКопирования = Неопределено Тогда
Иначе
Отказ = Истина ;
КонецЕсли ;
КонецПроцедуры
запретить в форме Списка или Журнала в событии "перед началом добавления".
Код 1C v 8.х Процедура ДокументСписокПередНачаломДобавления(Элемент, Отказ, Копирование)
Если копирование = истина тогда
отказ = Истина .
КонецЕсли ;
КонецПроцедуры
Категория:
Документы Ввод документа на основании - Программно Код 1C v 8.х НовДок = Документы. ПеречислениеНДФЛвБюджет. СоздатьДокумент( ) ;
НовДок. Заполнить( ЭлементыФормы. ДокументСписок. ТекущаяСтрока) ;
НовДок. ПолучитьФорму( ) . Открыть( ) ;
Процедура ОбработкаЗаполнения(Основание)
Если ТипЗнч( Основание) = Тип( "ДокументСсылка.ЗарплатаКВыплатеОрганизаций" ) Тогда
Комментарий = Основание. Комментарий;
КраткийСоставДокумента = Основание. КраткийСоставДокумента;
Организация = Основание. Организация;
Ответственный = Основание. Ответственный;
ДатаПлатежа = Основание. ПериодРегистрации;
МесяцНалоговогоПериода = Основание. ПериодРегистрации;
Для Каждого ТекСтрокаЗарплата Из Основание. Зарплата Цикл
НоваяСтрока = СотрудникиОрганизации. Добавить( ) ;
НоваяСтрока. Сумма = ТекСтрокаЗарплата. Сумма;
НоваяСтрока. ФизЛицо = ТекСтрокаЗарплата. Физлицо;
КонецЦикла ;
КонецЕсли ;
КонецПроцедуры
Категория:
Документы Форма ~ Отбор, Группировка, Порядок и Условное оформление через компоновку данных Выполним отбор по подразделению, если основной интерфейс пользователя кассир.
Код 1C v 8.х Если ПользователиИнформационнойБазы. ТекущийПользователь( ) . ОсновнойИнтерфейс. Имя = "ИнтерфейсКассира" Тогда
ДокументСписок. Отбор. Сбросить( ) ;
ДокументСписок. Отбор. Подразделение. ВидСравнения= ВидСравнения. Равно;
ДокументСписок. Отбор. Подразделение. Значение= ПараметрыСеанса. ТекущийПользователь. Подразделение;
ДокументСписок. Отбор. Подразделение. Установить( ) ;
Элементыформы. Список. НастройкаОтбора. Подразделение. Доступность = Ложь ;
КонецЕсли ;
Выполним отбор по дате в форме списка документа.
Код 1C v 8.2 УП ЭлементОтбора = Список. Отбор. Элементы. Добавить( Тип( "ЭлементОтбораКомпоновкиДанных" ) ) ;
ЭлементОтбора. ЛевоеЗначение = Новый ПолеКомпоновкиДанных( "Дата" ) ;
ЭлементОтбора. Использование = Истина ;
ЭлементОтбора. ВидСравнения = ВидСравненияКомпоновкиДанных. БольшеИлиРавно;
ЭлементОтбора. ПравоеЗначение = Дата1 ;
ЭлементОтбора. РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных. Обычный;
Элементы. Список. Обновить( ) ;
Группировка. Сгруппируем список документов по полю Клиент.
Код 1C v 8.2 УП ЭлементГруппировки = Список. Группировка. Элементы. Добавить( Тип( "ПолеГруппировкиКомпоновкиДанных" ) ) ;
ЭлементГруппировки. Использование = Истина ;
ЭлементГруппировки. Поле = Новый ПолеКомпоновкиДанных( "Клиент" ) ;
Элементы. Список. Обновить( ) ;
Порядок. Отсортируем список документов по полю ПлановаяДатаПоставки.
Код 1C v 8.2 УП Список. Порядок. Элементы. Очистить( ) ;
НовыйПорядок = Список. Порядок. Элементы. Добавить( Тип( "ЭлементПорядкаКомпоновкиДанных" ) ) ;
НовыйПорядок. Поле = Новый ПолеКомпоновкиДанных( "Список.ПлановаяДатаПоставки" ) ;
НовыйПорядок. Использование = Истина ;
НовыйПорядок. РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных. Обычный;
НовыйПорядок. ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных. Возр;
Элементы. Список. Обновить( ) ;
Условное оформление. Покрасим в красный цвет строки списка документов с незаполненной датой согласования счета.
Код 1C v 8.2 УП ЭлементОформления = Список. УсловноеОформление. Элементы. Добавить( ) ;
ЭлементОтбора = ЭлементОформления. Отбор. Элементы. Добавить( Тип( "ЭлементОтбораКомпоновкиДанных" ) ) ;
ЭлементОтбора. ЛевоеЗначение = Новый ПолеКомпоновкиДанных( "ДатаСогласованияСчета" ) ;
ЭлементОтбора. ВидСравнения = ВидСравненияКомпоновкиДанных. НеЗаполнено;
ЭлементОтбора. Использование = Истина ;
Элемент = ЭлементОформления. Оформление. Элементы[1 ];
Элемент. Использование = Истина ;
Элемент. Значение = Новый Цвет( 255 , 0 , 0 ) ;
Категория:
Работа с Формой (Диалог) и её элементами Оптимизация работы в списке "ПриПолученииДанных" Очень часта бухгалтера, хотят чтобы формы списка были раскрашены во все цвета радуги в зависимости от значений реквизитов документа. Пример: Если товар не получен то в форме списка строка документа должна быть красная, если товар ... т.д., и так еще много много хотелок. Есть конечно отчеты, но не всегда выход. Приступим, получаем код типа:
Код 1C v 8.х Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
ЦветКрасный = Новый Цвет( 255 , 130 , 124 ) ;
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
Данныестроки = ОформлениеСтроки. Данныестроки;
Если ДанныеСтроки. Ссылка. НеПолученТовар Тогда
ОформлениеСтроки. ЦветФона = ЦветКрасный;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Вроде все красиво. Разукрашиваем в "ПриПолученииДанных", а не в "ПриВыводеСтроки", Цвет вынесен из цикла.
Проходим отладчик и видим, узкое место
Код 1C v 8.х ДанныеСтроки. Ссылка. НеПолученТовар
т.е 1С-ка каждый раз запросом получает значение реквизита. Можно конечно добавить этот реквизит в форму списка и скрыть, но условие и может быть сложным. Попробуем это ускорить. Получаем массив ссылок:
Код 1C v 8.х Функция ПолучитьМассивСсылокОформленияСтрок(ОформленияСтрок)
Массив = Новый Массив;
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
Массив. Добавить( ОформлениеСтроки. Данныестроки. Ссылка) ;
КонецЦикла ;
Возврат Массив;
КонецФункции
Получаем одним запросом необходимые нам данные. Пример:
Код 1C v 8.х Функция ПолучитьТаблицаОформленияСтрок(МассивСсылокОформления)
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| ПриходнаяНакладнаяБезнал.Ссылка,
| ПриходнаяНакладнаяБезнал.НеПолученТовар
|ИЗ
| Документ.ПриходнаяНакладнаяБезнал КАК ПриходнаяНакладнаяБезнал
|ГДЕ
| ПриходнаяНакладнаяБезнал.Ссылка В(&МассивСсылокОформления)" ;
Запрос. УстановитьПараметр( "МассивСсылокОформления" , МассивСсылокОформления) ;
Возврат Запрос. Выполнить( ) . Выгрузить( ) ;
КонецФункции
В результате получаем код процедуры ДокументСписокПриПолученииДанных
Код 1C v 8.х Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
ЦветКрасный = Новый Цвет( 255 , 130 , 124 ) ;
МассивСсылокОформления = ПолучитьМассивСсылокОформленияСтрок( ОформленияСтрок) ;
ТаблицаДанныхОформленияСтрок = ПолучитьТаблицаОформленияСтрок( МассивСсылокОформления) ;
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
Данныестроки = ОформлениеСтроки. Данныестроки;
СтрокаОформленияСтрок = ТаблицаДанныхОформленияСтрок. Найти( ОформлениеСтроки. Данныестроки. Ссылка, "Ссылка" ) ;
Если СтрокаОформленияСтрок. НеПолученТовар Тогда
ОформлениеСтроки. ЦветФона = ЦветКрасный;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Ну а теперь тесты, как же без них.
Первый вариант:
Документ.ПриходнаяНакладнаяБезнал.Форма.ФормаВыбора.Форма 36 ДокументСписокПриПолученииДанных1(Элемент, ОформленияСтрок); 81 12,558905 96,65
Второй вариант после оптимизации
Документ.ПриходнаяНакладнаяБезнал.Форма.ФормаВыбора.Форма 37 ДокументСписокПриПолученииДанных2(Элемент, ОформленияСтрок); 81 0,426953 3,29 "
Результат-
ускорение в 36 раз .
Вывод: З
апрос для получения данных должен быть один .
Спасибо за внимание.
Автор:
Андрей (boggonzikov) Категория:
Полезные, Универсальные Функции Табличное поле ~ Колонка с Флажком для пометки необходимых документов Вопрос:
Есть ТЗ с типом Значения ДокументСписок.ПоступлениеТоваровУслуг. Мне необходимо добавить еще одну колонку, в котором пользователь сможет отмечать необходимые документы для дальнейшей обработки(флажок, поставил/снял галочку).
Ответ:
Код 1C v 8.х Перем СписокДокументовДляОбработки;
Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок)
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ОформлениеСтроки. Ячейки. Флажок1 . УстановитьФлажок( СписокДокументовДляОбработки. Получить( ОформлениеСтроки. ДанныеСтроки. Ссылка) < > Неопределено ) ;
КонецЦикла ;
КонецПроцедуры
Процедура ТабличноеПоле1ПередНачаломИзменения(Элемент, Отказ)
Если ЭлементыФормы. ТабличноеПоле1 . ТекущаяКолонка. Имя = "Флажок1" Тогда
Отказ = Истина ;
Ссылка = ЭлементыФормы. ТабличноеПоле1 . ТекущиеДанные. Ссылка;
Если СписокДокументовДляОбработки. Получить( Ссылка) = Неопределено Тогда
СписокДокументовДляОбработки. Вставить( Ссылка, Ссылка) ;
Иначе
СписокДокументовДляОбработки. Удалить( Ссылка) ;
КонецЕсли ;
КонецЕсли ;
КонецПроцедуры
СписокДокументовДляОбработки = Новый Соответствие;
Колонка = ЭлементыФормы. ТабличноеПоле1 . Колонки. Вставить( 0 , "Флажок1" ) ;
Колонка. Имя = "Флажок1" ;
Колонка. Ширина = 3 ;
Колонка. Данные = "" ;
Колонка. ДанныеФлажка = "ПометкаУдаления" ;
Колонка. ИзменятьПозицию = Ложь ;
Колонка. ИзменениеРазмера = ИзменениеРазмераКолонки. НеИзменять;
Колонка. ИзменятьВидимость = Ложь ;
Колонка. ИзменятьНастройку = Ложь ;
Колонка. РежимРедактирования = РежимРедактированияКолонки. Непосредственно;
Категория:
Работа с Формой (Диалог) и её элементами Табличное поле ~ Дополнительные колонки в динамическом списке В процессе написания кода для отображения дополнительных вычисляемых полей в динамическом списке документов получились вот такие приемы (просто код, без комментариев).
Код 1C v 8.х Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ТекДокумент = ДанныеСтроки. Ссылка;
СуммаДокумента = ТекДокумент. Товары. Итог( "СуммаСНДС" ) ;
СуммаБезнал = ТекДокумент. Оплата. Итог( "СуммаОплаты" ) ;
СуммаНал = ? ( СуммаДокумента > СуммаБезнал, СуммаДокумента - СуммаБезнал, 0 ) ;
ОформлениеСтроки. Ячейки. СуммаДокумента. ОтображатьТекст = Истина ;
ОформлениеСтроки. Ячейки. НаличнаяОплата. ОтображатьТекст = Истина ;
ОформлениеСтроки. Ячейки. БезналичнаяОплата. ОтображатьТекст = Истина ;
ОформлениеСтроки. Ячейки. СуммаДокумента. Текст = Формат( СуммаДокумента, "ЧДЦ=2; ЧН=" ) ;
ОформлениеСтроки. Ячейки. НаличнаяОплата. Текст = Формат( СуммаНал, "ЧДЦ=2; ЧН=" ) ;
ОформлениеСтроки. Ячейки. БезналичнаяОплата. Текст = Формат( СуммаБезнал, "ЧДЦ=2; ЧН=" ) ;
Если ТекДокумент. ПолучитьОбъект( ) . ПолучитьСвязанныйПКО( ) < > Неопределено Тогда
ОформлениеСтроки. Ячейки. ЕстьПКО. ОтображатьКартинку = Истина ;
ОформлениеСтроки. Ячейки. ЕстьПКО. Картинка = БиблиотекаКартинок. ВыполненоУспешно32 ;
КонецЕсли ;
КонецПроцедуры
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
МассивДокументов = Новый Массив;
Для каждого ТекСтрока Из ОформленияСтрок Цикл
МассивДокументов. Добавить( ТекСтрока. ДанныеСтроки. Ссылка) ;
КонецЦикла ;
Запрос = Новый Запрос( "ВЫБРАТЬ Основание ИЗ РегистрСведений.АА_СвязанныеДокументы КАК СД ГДЕ СД.Основание В (&Документы)" ) ;
Запрос. УстановитьПараметр( "Документы" , МассивДокументов) ;
Результат = Запрос. Выполнить( ) . Выгрузить( ) ;
Для Каждого ТекСтрока Из ОформленияСтрок Цикл
Ссылка = ТекСтрока. ДанныеСтроки. Ссылка;
ТекСтрока. Ячейки. ЕстьПКО. ЗначениеКартинки = Результат. Найти( Ссылка, "Основание" ) < > Неопределено ;
КонецЦикла ;
КонецПроцедуры
Категория:
Работа с Формой (Диалог) и её элементами Как установить период в списке документов? Как изменить период в журнале документов программно?
Код 1C v 8.х
Если Периодичность = Перечисления. Периодичность. Год Тогда
ДатаНачала = НачалоГода( РабочаяДата) ;
ИначеЕсли Периодичность = Перечисления. Периодичность. Квартал Тогда
ДатаНачала = НачалоКвартала( РабочаяДата) ;
ИначеЕсли Периодичность = Перечисления. Периодичность. Месяц Тогда
ДатаНачала = НачалоМесяца( РабочаяДата) ;
ИначеЕсли Периодичность = Перечисления. Периодичность. Неделя Тогда
ДатаНачала = НачалоНедели( РабочаяДата) ;
ИначеЕсли Периодичность = Перечисления. Периодичность. День Тогда
ДатаНачала = НачалоДня( РабочаяДата) ;
Иначе
ДатаНачала = НачалоДня( РабочаяДата) ;
КонецЕсли ;
ДокументСписок. Отбор. Дата. ВидСравнения= ВидСравнения. ИнтервалВключаяГраницы;
ДокументСписок. Отбор. Дата. ЗначениеС = ДатаНачала;
ДокументСписок. Отбор. Дата. ЗначениеПо = КонецДня( РабочаяДата) ;
ДокументСписок. Отбор. Дата. Использование = Истина ;
Категория:
Документы Как Свернуть, Развернуть узлы Дерева значений на форме? Как программно свернуть/развернуть дерево значений на управляемой форме? Желательно &НаКлиенте.
Код 1C v 8.2 УП КоллекцияЭлементовДерева= ДеревоНоменклатуры. ПолучитьЭлементы( ) ;
Для Каждого Строка Из КоллекцияЭлементовДерева Цикл
ИдентификаторСтроки= Строка. ПолучитьИдентификатор( ) ;
Элементы. ДеревоНоменклатуры. Свернуть( ИдентификаторСтроки) ;
КонецЦикла ;
Для Каждого Строка Из КоллекцияЭлементовДерева Цикл
ИдентификаторСтроки= Строка. ПолучитьИдентификатор( ) ;
Элементы. ДеревоНоменклатуры. Развернуть( ИдентификаторСтроки) ;
КонецЦикла ;
Для выделенной, текущей строки:
Код 1C v 8.х
Строка = ЭлементыФормы. ТабличноеПоле. ТекущаяСтрока;
ЭлементыФормы. ТабличноеПоле. Развернуть( Строка, Истина ) ;
УзелРазвернут = ЭлементыФормы. ТабличноеПоле. Развернут( Строка) ;
Если УзелРазвернут Тогда
ЭлементыФормы. ТабличноеПоле. Свернуть( Строка) ;
КонецЕсли ;
Код 1C v 8.х
Для каждого Строка Из ЭлеменетыФормы. ТабличноеПоле1 . ВыделенныеСтроки Цикл
ЭлементыФормы. ТабличноеПоле. Свернуть( Строка) ;
КонецЦикла ;
Хотя конечно есть
Ctrl+Shift+"+" и
Ctrl+Shift+"-".
P.S. Для Табличного поля с галочкой Дерево(отображающего справочник), перебрать строки НЕВОЗМОЖНО!!!
Примеры вида:
Код 1C v 8.х Для каждого Строка Из ЭлементыФормы. тпОбъекты. Строки Цикл
Для каждого Строка Из ЭлементыФормы. тпОбъекты. ТекущаяСтрока. Строки Цикл
ЭлементыФормы. тпОбъекты. Свернуть( Строка) ;
КонецЦикла ;
- НЕ РАБОТАЮТ!!!
Для СправочникСписок (ДокументСписок) итератора нет. Это не коллекция значений, перебрать не сможете. Дерево здесь ни при чем.
Можно работать со строками либо через ПриПолученииДанных (предпочтительнее по скорости), либо ПриВыводеСтроки. Категория:
Работа с Деревом Значений Как программно изменить период в журнале? Код 1C v 8.х
НастройкаПериода = ЭлементыФормы. Список. СтандартныйПериод ;
НастройкаПериода. ВариантНачала = ВариантГраницыПериода. Месяц;
НастройкаПериода. ВариантОкончания = ВариантГраницыИнтервала. БезОграничения;
НастройкаПериода. РедактироватьКакИнтервал = Истина ;
НастройкаПериода. РедактироватьКакПериод = Ложь ;
Данная обработка устанавливает период в окне редактирования периода, но не назначает его. Т.е. еще нужно открыть окно выбора периода и нажать "Ок". *09
Из-за этого приходится использовать отбор:
Код 1C v 8.х ДокументСписок. Отбор. Дата. Использование = Истина ;
ДокументСписок. Отбор. Дата. ВидСравнения = ВидСравнения. ИнтервалВключаяГраницы;
ДокументСписок. Отбор. Дата. ЗначениеС = ДатаНачало;
ДокументСписок. Отбор. Дата. ЗначениеПо = ДатаКонец;
ДокументСписок. Отбор. Дата. установить( ) ;
Тема
обсуждения в Вопросах. Категория:
Список Справочника, Документов, Регистров Как программно открыть и выбрать документ, выбор документа из списка? Открыть список документов для выбора документа:
Код 1C v 8.х ФормаСписка = Документы. НачислениеЗарплатыРаботникамОрганизаций. ПолучитьФормуСписка( ) ;
ФормаСписка. Открыть( ) ;
Открыть список документов для выбора документа и установить отбор:
Код 1C v 8.х ФормаВыбора = Документы. НачислениеЗарплатыРаботникамОрганизаций. ПолучитьФормуВыбора( ) ;
ФормаВыбора. ДокументСписок. Отбор. Дата. ВидСравнения= ВидСравнения. ИнтервалВключаяОкончание;
ФормаВыбора. ДокументСписок. Отбор. Дата. ЗначениеС = НачалоМесяца( Дата) ;
ФормаВыбора. ДокументСписок. Отбор. Дата. ЗначениеПо = КонецМесяца( Дата) ;
ФормаВыбора. ДокументСписок. Отбор. Дата. установить( ) ;
ФормаВыбора. Заголовок = "Выберите документ" ;
ВыбДокНачисл = ФормаВыбора. ОткрытьМодально( ) ;
Категория:
Документы Как в форме списка, журнала, открыть выбранный элемент в другой форме, отличной от формы элемента? Для документов, как вариант:
Код 1C v 8.х номискдок= ЭлементыФормы. ДокументСписок. ТекущиеДанные. Номер;
ИскомыйДокумент= документы. Заявка. НайтиПоНомеру( номискдок) ;
Форма = ИскомыйДокумент. ПолучитьФорму( "ФормаДокументаПолная" ) ;
Форма. Открыть( ) ;
Но лучше все же(
и ПРАВИЛЬНЕЕ ) сразу получать форму по ссылке:
Код 1C v 8.х
Процедура ОткрытьВПолномПросмотре(Кнопка)
ФормаОткр = ЭлементыФормы. ПланВидовРасчетаСписок. ТекущиеДанные. Ссылка. ПолучитьФорму( "ФормаВидаРасчетаПолная" ) ;
ФормаОткр. Открыть( ) ;
КонецПроцедуры
Категория:
Список Справочника, Документов, Регистров Реквизит ~ Проверка на заполненность реквизитов формы, с признаком АвтоОтметкаНезаполненного Код 1C v 8.х
Функция ПроверкаАвтоОтметкаНезаполненного(ЭлементыФормы) Экспорт
Результат = Ложь ;
Для каждого Элемент Из ЭлементыФормы Цикл
Если ТипЗнч( Элемент) = Тип( "ПолеВвода" ) Тогда
Если Элемент. АвтоОтметкаНезаполненного И ЗначениеНеЗаполнено( Элемент. Значение) Тогда
Сообщить( "Необходимо заполнить обязательное поле ввода: " + Элемент. Подсказка, СтатусСообщения. Внимание) ;
Результат = Истина ;
КонецЕсли ;
ИначеЕсли ТипЗнч( Элемент) = Тип( "ТабличноеПоле" ) Тогда
СоставПоля = Элемент. Значение;
Колонки = Элемент. Колонки;
Попытка
Для каждого Строка Из СоставПоля Цикл
Для каждого Колонка Из Колонки Цикл
Если ТипЗнч( Колонка. ЭлементУправления) = Тип( "ПолеВвода" ) Тогда
Если Колонка. АвтоОтметкаНезаполненного И ЗначениеНеЗаполнено( Строка[Колонка. Данные]) Тогда
Сообщить( "Необходимо заполнить обязательное поле ввода табличной части: " + Колонка. ТекстШапки, СтатусСообщения. Внимание) ;
Результат = Истина ;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
КонецЦикла ;
Исключение
КонецПопытки ;
КонецЕсли ;
КонецЦикла ;
Возврат Результат;
КонецФункции
Категория:
Работа с Формой (Диалог) и её элементами Процедура действие отобрать для кнопки Можно на командной панели формы сделать Подменю Отбор и в Имени каждого пункта указать значение отбора, а действие одна и таже процедура:
Код 1C v 8.х Процедура ДействиеОтобратьДокументы(Кнопка)
ДокументСписок. Отбор. Сбросить( ) ;
ДокументСписок. Отбор. Комментарий. ВидСравнения= ВидСравнения. Содержит;
ДокументСписок. Отбор. Комментарий. Значение= Кнопка. Имя;
ДокументСписок. Отбор. Комментарий. установить( ) ;
КонецПроцедуры
Категория:
Список Справочника, Документов, Регистров Отбор по списку значений Код 1C v 8.х СозданныйСписок = Новый СписокЗначений;
СозданныйСписок. Добавить( Перечисления. СтатусЗаявки. Выполнено) ;
СозданныйСписок. Добавить( Перечисления. СтатусЗаявки. ЗакрытиеЗаявки) ;
СозданныйСписок. Добавить( Перечисления. СтатусЗаявки. ОтклоненаРукОтдЗакупок) ;
СозданныйСписок. Добавить( Перечисления. СтатусЗаявки. Удалить) ;
ДокументСписок. Отбор. Сбросить( ) ;
ДокументСписок. Отбор. статус. ВидСравнения= ВидСравнения. НеВСписке;
ДокументСписок. Отбор. статус. значение = СозданныйСписок;
ДокументСписок. Отбор. Статус. установить( ) ;
Категория:
Список Справочника, Документов, Регистров