Программная доработка динамического списка с ...
-

Программная доработка динамического списка с использованием схемы запроса в учетной системе 1С

0
2466
28.11.2024 Алексей Новоточинов

Содержание:

1.     Доработка динамического списка с помощью кода в операционной системе 1С

2.     Использование в 1С схемы запроса при доработке динамического списка

   

Иногда у пользователей имеется код для объектов из другой программы, который хотелось бы видеть в текущей, но добавлять лишний реквизит и редактировать списки не хочется. Это случай, например, когда осуществляется переход с SAP или другой конфигурации на 1С, например, для основных средств или номенклатуры и нужно сохранить уникальный цифровой код.

 
Как вариант, можно предложить добавление регистра сведений 1С и программную модификацию текста запроса динамического списка.  


1.     Доработка динамического списка с помощью кода в операционной системе 1С


Для того, чтобы меньше менять формы списков (любые справочники, регистр сведений) предлагается дописать немного кода и в «При создании» добавить процедуру:


            клСтарыйКод.ДобавитьСтарыйКод(ЭтаФорма, Список, Элементы.Список, "СтарыйКодСклада");
В общем модуле клСтарыйКод будет всего процедура
Процедура ДобавитьСтарыйКод(Форма, Список, ЭлементСписок, ИмяРегистра) Экспорт

 

            Если Список.ПроизвольныйЗапрос Тогда

                        ТекстЗапроса = Список.ТекстЗапроса;

            Иначе

                        СхемаКомпоновкиДанных = ЭлементСписок.ПолучитьИсполняемуюСхемуКомпоновкиДанных();

                        ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных[0].Запрос;

                        Список.ПроизвольныйЗапрос = Истина;

            КонецЕсли;

 

            ТекстЗапросаСоСтарымКодом = ТекстЗапросаСоСтарымКодом(ТекстЗапроса, ИмяРегистра);

            Список.ТекстЗапроса = ТекстЗапросаСоСтарымКодом;

           

            НовыйЭлемент = Форма.Элементы.Добавить("клСтарыйКод", Тип("ПолеФормы"), ЭлементСписок);

            НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;

            НовыйЭлемент.ПутьКДанным = "Список.СтарыйКод";

            НовыйЭлемент.ТолькоПросмотр = Истина;

           

КонецПроцедуры  

2.     Использование в 1С схемы запроса при доработке динамического списка


И функция:
Функция ТекстЗапросаСоСтарымКодом(ТекстЗапроса, ИмяРегистра)

 

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

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

           

            КоличествоПакетов = СхемаЗапроса.ПакетЗапросов.Количество();

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

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

           

            ОсновнойИсточник = ОператорыЗапроса.Источники[0];

           

            ДополнительныйИсточник = ОператорыЗапроса.Источники.Добавить("РегистрСведений." + ИмяРегистра, ИмяРегистра);

            ДополнительныйИсточник.Соединения.Очистить();

            ТекстУсловия = ОсновнойИсточник.Источник.Псевдоним + ".Ссылка = " + ДополнительныйИсточник.Источник.Псевдоним + ".Источник";

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

            ОператорыЗапроса.ВыбираемыеПоля.Добавить(ИмяРегистра + ".СтарыйКод");

           

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

           

            Возврат ТекстЗапросаСоСтарымКодом;

           

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


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

Алексей Новоточинов

Обсудить статью в Telegram Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.