Содержание:
2. Постановка задачи. Доработка и модификация конфигураций 1С
3. Решение задачи на примере 1С:УТ 11
1. Введение
Одну из доработок (модификации) типовых механизмов конфигураций, например, это может быть конфигурация 1С:УТ 11, 1С:КА2, 1С:ERP 2, да и могут использоваться другие конфигурации, доработаем вывод дополнительных данных в форму подбора и раскраску строк в подборе в зависимости от условия. Т.к. данные в форме подбора выводятся с помощью динамического списка, то одной из задач и будет научиться дорабатывать динамический список.
К тому же рассмотрим пример не просто модификации типовой обработки, а сделаем это при помощи расширения.
2. Постановка задачи. Доработка и модификация конфигураций 1С
В конфигурациях на управляемом интерфейсе, таких как 1С:УТ 11, 1С:КА 2 и 1С 8 ERP 2, очень часто используются динамические списки в типовых конфигурациях, поэтому данная статья не обязательно относится к формам подбора.
Итак, в данной статье:
- в форму подбора продаж номенклатуры мы добавим дополнительную колонку КоличествоПродаж, в которую выводятся данные по продажам номенклатуры контрагенту за последние 3 месяца
- в форме подбора строки, в которых остаток меньше 5 подсветим желтым цветом.
Информацию о данных по продажам номенклатуры будем получать из:
- регистра накопления «ВыручкаИСебестоимостьПродаж»
Дорабатываемая обработка - это обработка по продажам:
- Подбор товаров в документы продаж
На форме данной обработки работаем с динамическим списком, с динамическим запросом и параметром Документ, из которого будем получать информацию для параметров по партнеру, контрагенту и дате документа.
3. Решение задачи на примере 1С:УТ 11
Решение задачи в 1С:УТ 11, 1С:КА 2 и 1С 8 ERP 2 начнем с того, что добавим расширение конфигурации, назовем его ПодборНоменклатуры. Расширение конфигурации поможет нам не изменять типовую обработку в конфигурации.
Добавляем новое расширение в конфигурации
Расширению необходимо дать имя, можно скорректировать синоним. Назначение расширения оставим «Адаптация», префикс в данном примере оставим предложенный по умолчанию. Для того чтобы добавить форму обработки в расширение, можно на форме в конфигурации нажать правой кнопкой мыши и выбрать пункт «Добавить в расширение»
Далее продолжаем работать уже с формой в расширении. Отметим, что в параметрах имеется выделенный жирным цветом параметр – Документ. Это означает, что он является ключевым и в модуле форм будет доступ он и его реквизиты.
По свойствам табличной части подбора понимаем, что нам необходимо работать и дорабатывать реквизит динамического списка «СписокНоменклатуры», переходим в редактирование данного реквизита
Добавляем поле «КоличествоПродаж», позже мы реализуем его заполнение
Перейдем пока что к задаче по оформлению строк. Переходим на вкладку «Настройки» динамического списка, далее «УсловноеОформление». Указали цвет фона – желтый (или можете выбрать другой) и условие, что «ВНаличииОстаток меньше 5». Оформляемые поля не указываем, будет означать, что действует оформление на всю строку.
Добавим добавленное поле КоличествоПродаж в табличные части формы подбора. Обратим внимание, что используется список номенклатуры в двух табличных полях в зависимости от режима, необходимо добавить в каждую
Посмотрим результат в пользовательском режиме, причем с оформлением строк мы все выполнили уже.
Видим результат, что оформление строк заработало, а вот колонки КоличествоПродаж не отобразилось.
Если проанализируем запрос динамического списка в отладчике, то до указанной ниже на скрине процедуры у динамического списка первоначальный запрос и там имеется наше добавленное поле, а после выполнения процедуры текст запроса меняется и нашего поля уже нет.
Необходимо сделать доработку формирования запроса, и это мы сделаем с помощью подмены фрагментов результирующего запроса в расширении.
В расширении формы необходимо выбрать обработчик события ПриСозданииНаСервере
Тип вызова «Вызывать после»
Создаем процедуру с модификацией динамического запроса:
- Определяем временную таблицу для количества продаж
- соединяем временную таблицу с основным запросом
- заменяем фрагменты запроса на необходимые вывод полей и соединения таблиц
- устанавливаем параметры запроса временной таблицы количества продаж
Проверяем результат в пользовательском режиме
Вот таким образом можно дорабатывать динамические списки с динамическими запросами. При этом запрос динамически может меняться в разных местах.
Стоит обратить внимание, что использование расширения и поведения может отличаться от версии платформы и режима совместимости.
В общем, на данном примере статьи показано, как можно модифицировать динамические списки с динамическими запросами и условное оформление табличных частей. При этом условное оформление можно задавать и программным способом.
Можете попробовать реализовать подобное сами, а можете обратиться к нам, и быть уверенными, что задача будет решена.
Специалист компании ООО «Кодерлайн»
Сергей Омельчук.