Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
08 ноя 2025, 13:05

скд в тз

Автор sali, 24 окт 2025, 12:43

0 Пользователей и 1 гость просматривают эту тему.

sali

задание такое - взять макет с запросом, поместить туда отбор и результат выгрузить в таблицу значений.
есть макет с скд там запрос для выгрузки. создать программно ТЗ со своими колонками херня вопрос, вопрос в другом как правильно заполнить результат с скд в ТЗ?? в общем модуле все это

и вопрос , почему выдается ошибка "вызов как функции" на строке КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновщикаИзНастройкиОбмена);


    СхемаВыгрузкиТоваров = РегистрыСведений.ЭДОН_ПараметрыРегламентныхЗаданий.ПолучитьМакет("СхемаВыгрузкиТоваровКонтрагентовУНФ");

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаВыгрузкиТоваров));

НастройкиКомпоновщикаИзНастройкиОбмена = Неопределено;
Если ЗначениеЗаполнено(ХранилищеНастроекВыгрузки) Тогда
НастройкиКомпоновщикаИзНастройкиОбмена = ХранилищеНастроекВыгрузки.Получить();
КонецЕсли;

Если ЗначениеЗаполнено(НастройкиКомпоновщикаИзНастройкиОбмена) Тогда // И ЗначениеЗаполнено(НастройкиКомпоновщикаИзНастройкиОбмена) Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновщикаИзНастройкиОбмена);
КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
Иначе
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаВыгрузкиТоваров.НастройкиПоУмолчанию);
КонецЕсли;

Возврат КомпоновщикНастроек;

sali

никто меня не любит... :trhregerhg:

Максим75

Цитата: sali от 24 окт 2025, 13:43никто меня не любит... :trhregerhg:
ну Вы же не доллар.

точкой станьте и посмотрите, какой тип прилетает сюда
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновщикаИзНастройкиОбмена);
и какой тип здесь
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаВыгрузкиТоваров.НастройкиПоУмолчанию);

ну естественно тип того, что в скобках.
может типы разные.

sali

Максим75, не , а объясните как переменная НастройкиКомпоновщикаИзНастройкиОбмена может влиять на методы у КомпоновщикНастроек? Ошибка то выдается что у компоновщика нет никаких методов, параметров, функций

antoneus

Цитата: sali от 24 окт 2025, 13:53компоновщика нет никаких методов, параметров, функций

Так вызов процедуры как функции или поле объекта не обнаружено?

sali

antoneus, Неизвестный модуль: обращение к процедуре объекта как к функции (ЗагрузитьНастройки)

antoneus

И прям на этой строке падает?

sali

antoneus, падал. да . сейчас уже код совсем другой и появился другой вопрос  :D  :D
вот есть код
Функция ВыполнитьРегламентноеЗадание(НашеРегламентноеЗадание, ПараметрыНастроек) Экспорт 

Параметры = ПолучитьСтруктуруОсновныхПараметровОбмена(НашеРегламентноеЗадание);

ПодготовитьДанныеДляВыгрузки(Параметры, ПараметрыНастроек); 

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

Процедура ПодготовитьДанныеДляВыгрузки(Параметры, ПараметрыНастроек) 

// Компоновщик настроек.
ПроверитьИмябазы = Параметры.ЭтоБП;
КомпоновщикНастроек = ПолучитьКомпоновщикНастроекВыгрузкиТоваров(ПроверитьИмябазы, ПараметрыНастроек);

//ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ВидыЦен");
//ПараметрСКД.Значение = Параметры.МассивВидовЦен;
//ПараметрСКД.Использование = Истина;

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

Функция ПолучитьНоменклатуру(НастройкиОтбораТоваров)     

СтруктураСтрокВыгрузки = Новый ТаблицаЗначений;
СтруктураСтрокВыгрузки.Колонки.Добавить("Выбран");
СтруктураСтрокВыгрузки.Колонки.Добавить("Артикул");
СтруктураСтрокВыгрузки.Колонки.Добавить("Номенклатура");
СтруктураСтрокВыгрузки.Колонки.Добавить("ЕдиницаИзмерения");
СтруктураСтрокВыгрузки.Колонки.Добавить("Штрихкод");

МакетСКД = РегистрыСведений.ЭДОН_ПараметрыРегламентныхЗаданий.ПолучитьМакет("ШаблонОтбораНоменклатура");

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(МакетСКД));

НастройкиКомпоновщикаИзНастройкиОбмена = Неопределено;
Если ЗначениеЗаполнено(НастройкиОтбораТоваров) Тогда
НастройкиКомпоновщикаИзНастройкиОбмена = НастройкиОтбораТоваров.НастройкиКомпоновкиДанныхТоваров;
КонецЕсли;

Если ЗначениеЗаполнено(НастройкиКомпоновщикаИзНастройкиОбмена) Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновщикаИзНастройкиОбмена);
КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
Иначе
КомпоновщикНастроек.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию);
КонецЕсли;

Возврат КомпоновщикНастроек; // эту строку пропускает

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

В процедуре ПолучитьНоменклатуру , компоновщик такой какой нужен - все заполнилось , но когда он возвращается в процедуру ПодготовитьДанныеДляВыгрузки строка
КомпоновщикНастроек = ПолучитьКомпоновщикНастроекВыгрузкиТоваров(ПроверитьИмябазы, ПараметрыНастроек);становиться неопределено , то бишь КомпоновщикНастроек = неопределено

antoneus

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

sali

antoneus, у меня уже другой код, поменял , работает теперь

Теги:

Похожие темы (1)

Рейтинг@Mail.ru

Поиск