1с скд переменная не определена компоновщикнастроек

Обновлено: 08.07.2024

Здравствуйте, коллеги! Сегодня поговорим о проблеме неопределенных переменных в 1С. Рядовой пользователь с данной ошибкой сталкиваться не должен, но если уж и произошло подобное при работе в типовой конфигурации 1С, которая никак не модифицировалась, возможно, у нас наклевывается проблема самого релиза, которая иссякнет при обновлении. В таком случае стоит связаться со специалистом, чтобы найти выход из ситуации.

Если же Вы сами занимаетесь разработкой и столкнулись с ошибкой, «Переменная не определена в 1С», то следует обратится к конфигуратору, найти, что за переменная и в какой именно момент не определена. Есть несколько вариантов решения, но нужно подбирать их с умом, ибо вполне возможно, что после неправильного исправления в одном месте, Вы получите кучу ошибок в других местах.

1. Проверка на определения 1С 8.3

Можно прописать перед ошибкой следующий код:

Если Не НашаПеременная = Неопределено Тогда

Соответственно, закрыв «Если» после, но тут как уже писалось нужно действовать аккуратно, возможно данная конструкция напрочь сломает весь последующий код. Гораздо лучше найти, где объявляется переменная и устранить ошибку.

2. Поиск объявления переменной 1С 8.3

Вполне возможен вариант, что ее просто забыли включить в передаваемые параметры функции или она не доступна в данном виде клиента. Такое случается, когда, например, обращаются из тонкого клиента к метаданным. В этом случае стоит переписать функцию или, возможно, объявить новую, но уже на сервере, которая вернет необходимые тонкому клиенту данные.

3. Обычная опечатка в программе 1С 8.3 Предприятие

Чтобы быстро в программе 1С 8.3 Предприятие проверить опечатка ли спровоцировала ошибку, просто скопируем переменную из объявления и вставим ее имя в то место, где случается ошибка. Можно сделать следующим образом, чтобы избежать таких ошибок в будущем:

Обычная опечатка в 1С

опечатка в программе 1С

Теперь, когда курсор останавливается на идентификаторе, все другие его упоминания будут выделены, как на следующем изображении:

Что такое компоновщик настроек? И что значит КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить?
Что это за выбор? Где его аналог в СКД?

Что такое ДанныеОтчёта? Это не аргумент, не созданная переменная. Это что-то в самом отчёте, какой-то типовой реквизит.

Можно ли вставить условие для настроек валидации настроек значений свойств?
Например ,есть поле ввода и радиобаттон. в зависимости от изменения переключателя (день/месяц) в.


Компоновщик
Помогите пожалуйста. Есть 2 файла, в одном прописаны функции, в другом головной модуль, с.

Компоновщик vs. Шаблоны
Впервые реально понадобились шаблоны и.. затык :( Компановщик ругается так: Собственно в Main.

ну про выбор написано в СП, что это "Описание:Набор выбранных полей."
а про выборанноеПолеКомпоновкиДанных : Описание:Поле, которое выводится при компоновке данных.
надо полагать, что это коллекция тех полей, которые мы собираемся выводить.
по всей видимости ( имхо ) в СКД аналог - это когда ты делаешь группировки на закладке "настройки" и говоришь, какие поля где выводить.
данные отчёта хз, посмотри - может так зовут ТЧ формы, в которую выводится отчёт.

Решение

Тамика, лучше почитать про скд, как собирается отчет, и т.д. Есть целые отдельные форму по СКД)
Как пример: программный вывод отчета с комментариями, может поможет чем.

Паттерн программирования Компоновщик
Добрый день!! Опять мне понадобилась помощь знатоков. Дело вообще говоря вот в чем. Гот назад.


MASM-Компоновщик и Отладчик
Как мне воспользоваться компоновщиком и отладчиком,вроде бы создал загрузочный файл.Вот его код: @.


ООП модель данных, Компоновщик
Подскажите, можно ли как то сделать "красивее". существует текстовый формат. каждая строка это.

Изменение цены продуктов - паттерн Компоновщик
Вот читаю про Компоновщика тут. Там приводится пример про продукты, вложенные в коробки.


Отчет СКД: отображение значений параметров на форме
Добрый день, устанавливаю значения параметров при открытии, но на форме колонки эти пустые.

Обычные формы, отчет на СКД - вывод параметров на форму
Обычная форма, делаю отчет на СКД. Задаю параметры , на форме размещаю Табличное поле - В его.

1с отчет СКД выбор данных в зависимости от значения логического параметра
Здравствуйте. Платформа 1С: Предприятие 8.3. Столкнулась с такой проблемой. Имеется отчет "Отчет.


Отчет СКД. Вывод нескольких таблиц в отчет из разных запросов.
Привет, коллеги! Возникла необходимость в одном отчете видеть 2 таблички: одну по продажам, другую.

jediAlex, Все это надо делать не в модуле формы и ПриОткрытии, а в модуле объекта отчета и в ПриКомпоновкиРезультата
А правильно делать - это в параметрах скд (ваш скрин) Вот там в выражениях и в доступных значениях настроить ваши значения параметров Попробуйте параметры устанавливать в модуле объекта в процедуре ПриКомпоновкеРезультата(). ситуация та же. параметры не заполняются. Что не так опять делаю? а почему стандартная обработка ложь?
просто вы задаёте своих параметров или чего хотите, а уж компоновщик и прочие штуки пусть оно делает так, как ему полагается.
хотя вероятно дело не в этом

jediAlex Устанавливаешь Ложь стандартной обработке, а работаешь только с Компоновщиком. Ну изменил компоновщик, а где макет, где процессор вывода? У тебя ничего не выполняется без этого. И если эти параметры в скд установлены как пользовательские, то устанавливает параметры не в Настройках, а в ПользовательскиеНастройки. Ну и еще раз, как минимум параметры дат можно попробовать выставить на закладке Параметы макета скд

Добавлено через 3 часа 50 минут
Вижу сложности. Вот нашел у себя пример. Мне нужно было перенести в нестандартную обработку пользовательские настройки (параметры и отбор), с просто настройками - по аналогии.

в результате параметры не заполняются все равно. что не так делаю? jediAlex, Не надо просто копировать мой код. Адаптируйте его к своему. Например Параметры. У меня Меняется ОДИН параметр - Стандартный отчет (на скрине &Параметр) поэтому это ОДНА строка у вас нет стандартного отчета, у вас ДВЕ строки поэтому уже установка всего в Элементы[2] работать не может
И потом Окончание периода что это?
В общем, установите правильно параметры в макете скд и все получится Куда и что ставить - пользуйтесь отладчиком и смотрите

ни разу не делал такой вывод отчета(программно) поэтому не пойму что и как делать в данном случае.

Добавлено через 4 минуты
ОкончаниеПериода - параметр, который задается пользователем и используется для расчета конца периода. Я пробовал без этого обойтись - сразу в условии запроса писал
.

но при этом у меня не попадал в отчет конечный день интервала.

Вот это правильно для моего варианта, неправильно для твоего

А вообще ставь точку останова и смотри значение КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы, увидишь под каким индексом что стоит

попробовал, как вы посоветовали. Параметры дат присвоились, а массив подразделений - пустое значение. что не так с этим массивом?

Добавлено через 5 минут
ставил точку останова - при выполнении не останавливается

Функция ПодразделенияДляОтчета() что возвращает? Проверяли? Дайте код этой функции

Добавлено через 1 минуту
Где ставили точку останова? Сначала запускаете конфигуратор, из него запускаете программу (отладку). Есть подозрение что сделали наоборот

Когда может потребоваться программный вывод отчета в 1С на СКД:

  • программная установка параметров СКД;
  • использование внешних данных в отчете;
  • специфика табличного документа при выводе на печать;
  • прочие нестандартные ситуации.

Предлагаю на примере рассмотреть, как можно сформировать отчет на СКД и заполнить его параметры программно.

Создадим новый внешний отчет. Напишем простейший запрос на примере 1С Бухгалтерия, который выводит начальный и конечный остатки и обороты по счету:

ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Счет,
ХозрасчетныйОстаткиИОбороты.Субконто1,
ХозрасчетныйОстаткиИОбороты.Субконто2,
ХозрасчетныйОстаткиИОбороты.Субконто3,
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты

Вот, как выглядит отчет в стандартном виде:

сформированный отчет в 1С на СКД

Теперь сформируем его программно. Для этого нам нужно добавить Основную Форму:

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

создание формы отчета по умолчанию

Добавим команду и кнопку на форме:

создание команды на управляемой форме

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

Читайте также: