16.02.2022 Татьяна Федорова 16027
Модификация динамических списков в 1С 8.3

Содержание:

1.       Как программно добавить в динамический список данные?

2.       Вариант решения для динамических списков в 1С 8.3

3.       Использование Схемы запросов 


1.    Как программно добавить в динамический список данные?


Использование объекта СхемаЗапроса для универсальной модификации динамических списков.

Дано:

·         динамические списки данных объектов конфигурации (списки элементов справочника, журналы документов);

·         некоторые данные, которыми нужно программно добавить в динамические списки (каждый элемент списка), содержащиеся, например, в регистрах сведений.


Требуется предложить решение, которое:

·         легко масштабируется на любые динамические списки данных в 1С (и может быть перенесено в другую конфигурацию);

·         оставляет основную конфигурацию на полной поддержке.  


2.    Вариант решения для динамических списков в 1С 8.3


Допустим, с помощью расширения добавлен некий регистр сведений, в котором хранятся данные о ссылочных объектах БД (элементы справочника, документы). Необходимо в типовые формы динамических списков в 1С 8.3 и формы выбора добавить информацию из этого регистра, соединив левым соединением с типовым списком.


Можно решить эту задачу так: вынести в расширение формы списка и выбора и переписать произвольный запрос динамического списка. Недостатки этого метода заключаются в том, что при обновлении типовой конфигурации на более свежие релизы придется отслеживать изменения всех типовых произвольных запросов списков, чтобы внести эти изменения в расширение.   


3.    Использование Схемы запросов


Используем объект «Схема Запросов» в 1С.


В расширении в процедуре ПриСозданииНаСервере (с аннотацией &После) получим запрос динамического списка, передадим его в нашу процедуру, обработаем с помощью объекта СхемаЗапроса и обратно вернемся в текст, содержащий левое соединение с нужным нам регистром.


Ниже приводится примерный текст функции, решающий эту задачу. На большинстве динамических списков в 1С 8.3 он может быть использован без изменений. Вывод новой колонки в форму списка для показа пользователю здесь не рассматривается.

 


Рисунок 1 Запрос динамического списка


Функция ПолучитьРасширенныйТекстЗапроса(ТекстЗапроса) Экспорт

                СхемаЗапроса = Новый СхемаЗапроса;

                // передадим текст запроса в Схему запроса

                СхемаЗапроса.УстановитьТекстЗапроса(Знач ТекстЗапроса);

                //получим последний запрос пакета, к которому будем присоединять таблицу

                ПоследнийЗапросПакета = СхемаЗапроса.ПакетЗапросов[СхемаЗапроса.ПакетЗапросов.Количество()-1]);

                //Каждый оператор представляет собой запрос ВЫБРАТЬ.

                Оператор = ПоследнийЗапросПакета.Операторы[0];

                // получаем источники оператора ВЫБРАТЬ

                Источники = Оператор.Источники;

                ОсновнойИсточник = Источники[0];

                //добавим к источникам наш регистр, укажем его псевдоним

                НовыйИсточник = Источники.Добавить("РегистрСведений.Расш_НашРегистр.СрезПоследних", "Расш_НашРегистр");

                // получим псевдоним основном таблицы для формирования условия соединения

                ПсевдонимОсновнойТаблицы = ОсновнойИсточник.Псевдоним;

                //Сформируем строку соединения

                УсловиеСоединения = ПсевдонимОсновнойТаблицы + ".Ссылка = Расш_НашРегистр.Ссылка";

                // получим соединения основного источника и добавим к нему своё

                Соединения = ОсновнойИсточник.Соединения;

                Соединения.Добавить(НовыйИсточник, УсловиеСоединения);

                // установим тип соединения

                Соединения[Соединения.Количество()-1].ТипСоединения = ТипСоединенияСхемыЗапроса.ЛевоеВнешнее;

                // чтобы в динамическом списке стало доступно для вывода поле из нашего регистра, добавим его в запрос

                Оператор.ВыбираемыеПоля.Добавить("Расш_НашРегистр.НекийРесурс");

                // вернем получившийся запрос

                НовыйТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();

                Возврат НовыйТекстЗапроса;

КонецФункции

 

Специалист компании «Кодерлайн»

Татьяна Федорова

Наши проекты

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием для Украины

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

Внедрение системы финансового учета БИТ:Финанс
ООО «Алькор и Ко» (Л’Этуаль)

Отрасль:
Торговля

Внедренное типовое решение:
БИТ.Финанс

- Финансовый учет;
- Поддержка проекта внедрения МСФО;
- Регламентные рабо...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Производственные операции
Автоматизация бизнес-процессов...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:
1С:Управление корпоративными финансами

- Финансово-бухгалтерский блок
- Казначейство ...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

-Кадровый учет
-Расчет зарплаты
-Регламентированная отчетность
-Подбор ...

Группа компаний ТМ «Дружба народов»
Группа компаний ТМ «Дружба народов»

Отрасль:
Пищевая промышленность

Внедренное типовое решение:
1С:ERP Управление предприятием 2.1

- Переход на новый релиз 2.1 программы «1С:ERP Управление предприятием»
- Разра...

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

– Управление складскими запасами;
– Оформление заказов покупателей;
– ...

ООО «Еврорадиаторы»
ООО «Еврорадиаторы»

Отрасль:
1С:ERP 2.4

Внедренное типовое решение:

Специалисты «Кодерлайн» помогли перенести базу из текущей системы «1С:ERP 2.2» ...

ЗАО «Ламбумиз»
ЗАО «Ламбумиз»

Отрасль:
Производство картонной упаковки

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Маркетинг;
- Продажи;
- Планирование закупок;
- Закупки;
- Регламенти...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение