16.02.2022 Татьяна Федорова 13940
Модификация динамических списков в 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. КОРП

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

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

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

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

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

Внедрение ПП "1С:CRM ПРОФ" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:CRM ПРОФ

- Управление отношениями с клиентами (CRM) ...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

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

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и И...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

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

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

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

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление зак...

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

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

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

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

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

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

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Рег...

ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"
ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"

Отрасль:
Деятельность больничных организаций

Внедренное типовое решение:
БИТ:Управление медицинским центром 8

- Управление отношениями с клиентами (CRM)
- Делопроизводство
- Ведение но...

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

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

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

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