1с скд переменная не определена компоновщикнастроек
Здравствуйте, коллеги! Сегодня поговорим о проблеме неопределенных переменных в 1С. Рядовой пользователь с данной ошибкой сталкиваться не должен, но если уж и произошло подобное при работе в типовой конфигурации 1С, которая никак не модифицировалась, возможно, у нас наклевывается проблема самого релиза, которая иссякнет при обновлении. В таком случае стоит связаться со специалистом, чтобы найти выход из ситуации.
Если же Вы сами занимаетесь разработкой и столкнулись с ошибкой, «Переменная не определена в 1С», то следует обратится к конфигуратору, найти, что за переменная и в какой именно момент не определена. Есть несколько вариантов решения, но нужно подбирать их с умом, ибо вполне возможно, что после неправильного исправления в одном месте, Вы получите кучу ошибок в других местах.
1. Проверка на определения 1С 8.3
Можно прописать перед ошибкой следующий код:
Если Не НашаПеременная = Неопределено Тогда
Соответственно, закрыв «Если» после, но тут как уже писалось нужно действовать аккуратно, возможно данная конструкция напрочь сломает весь последующий код. Гораздо лучше найти, где объявляется переменная и устранить ошибку.
2. Поиск объявления переменной 1С 8.3
Вполне возможен вариант, что ее просто забыли включить в передаваемые параметры функции или она не доступна в данном виде клиента. Такое случается, когда, например, обращаются из тонкого клиента к метаданным. В этом случае стоит переписать функцию или, возможно, объявить новую, но уже на сервере, которая вернет необходимые тонкому клиенту данные.
3. Обычная опечатка в программе 1С 8.3 Предприятие
Чтобы быстро в программе 1С 8.3 Предприятие проверить опечатка ли спровоцировала ошибку, просто скопируем переменную из объявления и вставим ее имя в то место, где случается ошибка. Можно сделать следующим образом, чтобы избежать таких ошибок в будущем:
Теперь, когда курсор останавливается на идентификаторе, все другие его упоминания будут выделены, как на следующем изображении:
Специалист компании ООО «Кодерлайн»
Дягилев Дмитрий Вадимович
Вас могут заинтересовать следующие статьи:
Добрый день.
Пытаюсь программно сформировать отчет на скд и вывести его на форму обработки. На форме размещен элемент "Результат" - тип Табличный документ.
Код:
ОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
Но Результат не заполняется, поле на форме обработки - пустое.
Подскажите, в чем может быть ошибка?
Да: в схеме СКД ОСВ не задана структура отчета. Надо формировать программно.
В форме ОСФ можно покопать в процедуре ПриСозданииНаСервере
В общем случае добавление группировки (по Номенклатуре):
(3) DJDUH, а разве :
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
не вывод в табличный документ?
(2) kanalya, Спасибо, но не помогло.
Можете подсказать , как правильно установить параметры? например период?
А где компонуется? В модуле формы или в модуле объекта? Форма управляемая или обычная?
Если в модуле формы то советую в отладчике проверить тип. На всякий случай.
в модуле объекта
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачПериода");
ПараметрДанных.Значение = НачалоДня(НачПериода);
ПараметрДанных.Использование = Истина;
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонПериода");
ПараметрДанных.Значение = КонецДня(КонПериода);
ПараметрДанных.Использование = Истина;
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТекПериод");
ПараметрДанных.Значение = НачалоДня(ТекПериод); //НачалоДня(ТекущаяДата());
ПараметрДанных.Использование = Истина;
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("СДДСПустая");
ПараметрДанных.Значение = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка();
ПараметрДанных.Использование = Истина;
или если в модуле формы
Компоновщикнастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата1").Значение = Дата1;
Компоновщикнастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата1").Использование = Истина;
Компоновщикнастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата2").Значение = Дата2;
Компоновщикнастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата2").Использование = Истина;
Результата. Ну и если форма управляемая. Чья форма, выводимого отчета или нет? Чтобы не было разночтений советую писать не Результат, а
. чтобы наверняка обратиться к результату который на форме.
Ну и параметры тоже неплохо бы заполнить. А то все равно будет выводиться отчет, но без данных или с настройками по умолчанию.
Уточню, есть внешняя обработка, у обработки, на форме выведен реквизит "Результат", тип "Табличный документ", вот в этот табличный документ я и пытаюсь вывести стандартный отчет :"оборотно сальдовая ведомость"
1. Не рекоммендую использовать имя переменной " СхемаКомпоновкиДанных ". Лучше "СхемаКомпоновки" или "СКД". Почему? В модуле объекта отчета в процедуре "ПриКомпоновкиРезультата" если поставить точку остановки в самом начале процедуры, то вычислив выражение "СхемаКомпоновкиДанных" можно обнаружить, что оно уже используется отчетом (управляемые формы) и содержит схему, т.е. вы ее переопределяете.
2. Проверить значения настроек поставив точку останова после их получения и вычислив выражение "Shift+F9":
4. Т.к. у вас управляемая форма настройки брать не по умолчанию из СКД, а с учетом пользовательских, т.е. из КомпоновщикаНастроек:
(11) m2d3, Во вложении файл, это результат вычисления выражения Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Сейчас получился вот такой вот код, но все равно на форме ничего не заполняет
ОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
Компоновщик.ЗагрузитьНастройки(Компоновщик.ПолучитьНастройки());
ПарамНачПериода = Компоновщик.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода") ;
Если ПарамНачПериода <> Неопределено Тогда
ПарамНачПериода.Использование = Истина;
ПарамНачПериода.Значение = Объект.НачалоПериода;
КонецЕсли;
ПарамКонПериода = Компоновщик.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода") ;
Если ПарамКонПериода <> Неопределено Тогда
ПарамКонПериода.Использование = Истина;
ПарамКонПериода.Значение = Объект.КонецПериода;
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
Подскажите, как задать показатели? Думаю, что проблема в этом, т.к на форме стал отображаться отбор, но сам отчет не показывается
получился вот такой код:
ОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
СКД = ОСВ.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
Компоновщик.ЗагрузитьНастройки(Компоновщик.ПолучитьНастройки());
ПарамНачПериода = Компоновщик.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода") ;
Если ПарамНачПериода <> Неопределено Тогда
ПарамНачПериода.Использование = Истина;
ПарамНачПериода.Значение = Объект.НачалоПериода;
КонецЕсли;
ПарамКонПериода = Компоновщик.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода") ;
Если ПарамКонПериода <> Неопределено Тогда
ПарамКонПериода.Использование = Истина;
ПарамКонПериода.Значение = Объект.КонецПериода;
КонецЕсли;
ОтборОрганизация=Компоновщик.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборОрганизация.Использование=Истина;
ОтборОрганизация.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
ОтборОрганизация.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Организация");
ОтборОрганизация.ПравоеЗначение=Объект.Организация;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Результат.Очистить();
ОСв.ПроверитьЗаполнение();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
выводит на форму только значение отбора(картинка прикреплена).
Как установить программно показатель отчета ( БУ, НУ)?
По скринами действительно видно что настроки пустые. Т.е. нет выбранных полей. Причина скорее всего в том, что объект компоновщик настроек обычно описывают как реквизит отчета. На клиенте пользователь устанавливает настройки, а на сервере они учитываются методом "ПолучитьНастройки()".
Попробуйте тогда вместо:
(16) m2d3, Поменял, не помогло.
Отбор и параметры данных заполняются исходя из моих значений ( отбор по организации устанавливается, период тоже), а структура Выбор - пустая, есть только доступные поля выбора
Да: в схеме СКД ОСВ не задана структура отчета. Надо формировать программно.
В форме ОСФ можно покопать в процедуре ПриСозданииНаСервере
В общем случае добавление группировки (по Номенклатуре):
(17) kanalya, Написал следующее, но что-то не выводит, где я ошибся?
Настройки = ОСВ.КомпоновщикНастроек.Настройки;
ГруппировкаСчет = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ПолеГруппировки = ГруппировкаСчет.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Использование = Истина;
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Счет");
ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Заголовок = "Обороты за период";
ВыбранноеПоле.Использование = Истина;
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ОборотыЗаПериод");
(17) kanalya, Огромное спасибо, отчет сформировался, только искать нужно было не в ПриСозданииНаСервере, а в модулеМенеджера и в общих модулях, которые отвечают за формирование отчета
Получился следующий код, добавил поле "счет", без группировок.
Почему же не выводит?
ОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
СКД = ОСВ.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
Компоновщик.ЗагрузитьНастройки(Компоновщик.ПолучитьНастройки());
ПарамНачПериода = Компоновщик.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода") ;
Если ПарамНачПериода <> Неопределено Тогда
ПарамНачПериода.Использование = Истина;
ПарамНачПериода.Значение = Объект.НачалоПериода;
КонецЕсли;
ПарамКонПериода = Компоновщик.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода") ;
Если ПарамКонПериода <> Неопределено Тогда
ПарамКонПериода.Использование = Истина;
ПарамКонПериода.Значение = Объект.КонецПериода;
КонецЕсли;
ОтборОрганизация=Компоновщик.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборОрганизация.Использование=Истина;
ОтборОрганизация.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
ОтборОрганизация.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Организация");
ОтборОрганизация.ПравоеЗначение=Объект.Организация;
Компоновщик.Настройки.ПараметрыВывода.Элементы.Найти("Title").Использование = истина;
Компоновщик.Настройки.ПараметрыВывода.Элементы.Найти("Title").Значение = "Мой заголовок отчета";
ВыбранноеПолеСчет = Компоновщик.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПолеСчет.Заголовок = "Счет";
ВыбранноеПолеСчет.Использование = Истина;
ВыбранноеПолеСчет.Поле = Новый ПолеКомпоновкиДанных("Счет");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
т.е. нужно получить информацию по всем сотрудникам из перечня подразделений и увидеть, по каким из работающих сотрудников есть списания в выбранном периоде и в какой день, а по каким - нет. Захотел присвоить значения параметров программно - чтобы их не набирать каждый раз для формирования отчета, а сразу заполнить при открытии формы. Сделал так в форме отчета:
ни один из параметров в режиме предприятия не заполняется. что не так делаю? помогите пожалуйста. Параметры отчета в СКД прилагаю.
Отчет СКД: отображение значений параметров на форме
Добрый день, устанавливаю значения параметров при открытии, но на форме колонки эти пустые.
Обычные формы, отчет на СКД - вывод параметров на форму
Обычная форма, делаю отчет на СКД. Задаю параметры , на форме размещаю Табличное поле - В его.
1с отчет СКД выбор данных в зависимости от значения логического параметра
Здравствуйте. Платформа 1С: Предприятие 8.3. Столкнулась с такой проблемой. Имеется отчет "Отчет.
Отчет СКД. Вывод нескольких таблиц в отчет из разных запросов.
Привет, коллеги! Возникла необходимость в одном отчете видеть 2 таблички: одну по продажам, другую.
jediAlex, Все это надо делать не в модуле формы и ПриОткрытии, а в модуле объекта отчета и в ПриКомпоновкиРезультата
А правильно делать - это в параметрах скд (ваш скрин) Вот там в выражениях и в доступных значениях настроить ваши значения параметров
а почему стандартная обработка ложь?
просто вы задаёте своих параметров или чего хотите, а уж компоновщик и прочие штуки пусть оно делает так, как ему полагается.
хотя вероятно дело не в этом
jediAlex Устанавливаешь Ложь стандартной обработке, а работаешь только с Компоновщиком. Ну изменил компоновщик, а где макет, где процессор вывода? У тебя ничего не выполняется без этого. И если эти параметры в скд установлены как пользовательские, то устанавливает параметры не в Настройках, а в ПользовательскиеНастройки. Ну и еще раз, как минимум параметры дат можно попробовать выставить на закладке Параметы макета скд
Добавлено через 3 часа 50 минут
Вижу сложности. Вот нашел у себя пример. Мне нужно было перенести в нестандартную обработку пользовательские настройки (параметры и отбор), с просто настройками - по аналогии.
jediAlex, Не надо просто копировать мой код. Адаптируйте его к своему. Например Параметры. У меня Меняется ОДИН параметр - Стандартный отчет (на скрине &Параметр) поэтому это ОДНА строка
у вас нет стандартного отчета, у вас ДВЕ строки поэтому уже установка всего в Элементы[2] работать не может
И потом Окончание периода что это?
В общем, установите правильно параметры в макете скд и все получится
Как известно, с помощью Системы Компоновки Данных (СКД) в 1С 8.3 и 8.2 можно быстро построить отчет практически любой сложности. Простота и скорость создания отчета достигается удобным визуальным конструктором, который обеспечивает необходимый результат без написания кода. Но все же бывает необходимость «вмешаться» в работу конструктора и программно сформировать отчет.
Когда может потребоваться программный вывод отчета в 1С на СКД:
- программная установка параметров СКД;
- использование внешних данных в отчете;
- специфика табличного документа при выводе на печать;
- прочие нестандартные ситуации.
Предлагаю на примере рассмотреть, как можно сформировать отчет на СКД и заполнить его параметры программно.
Создадим новый внешний отчет. Напишем простейший запрос на примере 1С Бухгалтерия, который выводит начальный и конечный остатки и обороты по счету:
ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Счет,
ХозрасчетныйОстаткиИОбороты.Субконто1,
ХозрасчетныйОстаткиИОбороты.Субконто2,
ХозрасчетныйОстаткиИОбороты.Субконто3,
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты
Вот, как выглядит отчет в стандартном виде:
Теперь сформируем его программно. Для этого нам нужно добавить Основную Форму:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Добавим команду и кнопку на форме:
В действиях команды пропишем следующий код (читать код на сайте достаточно трудно, поэтому рекомендуем скачать уже готовый пример отчета и посмотреть код в нем):
Одна из задач автоматизации — ускорение работы пользователя, что во многом достигается путем сокращения повторяющихся рутинных действий. У многих пользователей есть постоянные отчеты, для открытия которых они находят команду в меню, вводят отборы и параметры в открывшейся форме, нажимают «сформировать». В таких случаях разработчик 1С может создать команды программного запуска отчета с открытием и настройкой, что позволит сразу получить готовый отчет, а механизм системы компоновки данных, называемый в сокращении СКД, представляет ему для этого обширный инструментарий. В этой статье мы познакомимся с несколькими методами программного запуска отчета с открытием и различной настройкой, из которых каждый сможет выбрать наиболее подходящий.
Сначала получаем форму.
Если отчет хранится в базе тогда выполняем на клиенте код:
Если нужен не «вариант по умолчанию»
Далее получаем настройки:
Через серверный вызов получаем настройки и если нужно заполняем параметры Компоновщика в отдельной процедуре.
Загружаем измененные настройки в компоновщик
Код выполняется на клиенте, сначала мы формируем структуру с необходимыми параметрами формы, а потом вызываем процедуру открытия. Часто используемые параметры в данном случае это:
- СформироватьПриОткрытии — нужен чтобы отчет открылся сразу сформированным.
- Отбор — Устанавливает отбор на результат СКД.
- КлючВарианта — Имя варианта настроек для отчетов с несколькими вариантами.
Сначала получаем схему компоновки данных. Схема может быть получена из разных источников: общий макет, макет прикладного объекта, такого как справочник или отчет, макет из внешней обработки.
Код выполняется на сервере.
Получение локального макета
Получение макета произвольного отчета
Получение макета во внешней обработке
Получение макета из внешней обработки или отчета
Далее мы получаем настройки. Настройки СКД могут быть взяты из разных источников. Мы можем их получить из самой СКД:
Мы можем создать новый компоновщик настроек на основе схемы и получить настройки из него.
Мы можем получить настройки с отдельного компоновщика настроек, добавленного на произвольную форму.
И когда будем формировать
Далее программно заполняем параметры Компоновщика. Об этом подробно в разделе 4 .
Объявляем создаем необходимые объекты:
Создаем макет компоновки с помощью компоновщика макета:
Если результат выполнения СКД нужно вывести в таблицу значений то соответствующий тип генератора нужно указать в параметрах:
Инициализируем процессор компоновки данных
Создаем процессор вывода:
Для вывода в таблицу значений используется другой процессор вывода:
Запускаем процесс вывода:
Теперь мы можем проводить нужные операции с полученными данными.
Если вывод в таблицу значений завершился ошибкой “Не поддерживается вывод таблиц и диаграмм в универсальную коллекцию значений” значит настройки СКД не подходят для такой выгрузки, и нужно их изменить, об этом ниже.
При программном формировании СКД как в пункте 2 у нас есть огромное количество возможностей по управлению отчетом. Опишем самые часто используемые из них.
После того, как присвоено значение переменной СхемаКомпоновкиДанных — через нее мы можем получить доступ к формирующим запросам схемы через свойство коллекцию НаборыДанных . Элемент набора данных имеет интересующее нас свойство Запрос . Это текстовый параметр, содержащий в себе запрос. С помощью функций редактирования текста, его можно изменить, например, добавить отбор по недоступному через КомпоновщикНастроек полю.
Или если с добавлением нового параметра
Также при получении настроек можно выбрать не «настройки по умолчанию», а один из вариантов настроек.
Переменная Настройки содержит в себе всю палитру настроек которая доступна в редакторе СКД в разделе “Настройки”. Наиболее часто из них программно редактируются отборы, параметры и структура, в случае когда отчет с табличной структурой надо вывести в таблицу значений. Рассмотрим их подробнее.
Параметры
Все параметры создаются при создании исходного отчета, исключение если параметр был добавлен при редактировании запроса. Значение существующего параметра устанавливается следующим образом:
Добавление параметра делается следующим образом
Отбор
У отборов нет специальных функций по установке значений. Поэтому нужно перебирать коллекцию циклом.
Этот код установит значение для отбора, а если такого отбора нет в настройках, то добавит. В случае если точно известно, есть или нет такой отбор — то код можно упростить.
Структура
Для адаптации отчета к выводу в таблицу значений нужно очистить структуру группировок отчета и создать поле группировки “Детальные записи”.
Программист может упростить работу пользователя по вводу параметров и отборов если есть некоторая закономерность в них, но они всё таки не фиксированы. К примеру, сравнительный отчет по продажам за этот месяц этого года и аналогичные месяца трех предыдущих годов.
Приведенные примеры кода были протестированы на платформе 1С:Предприятие 8.3 (8.3.13.1690).
Читайте также: