arefaste/1C_Forums huggingface dataset:
как это правильно делается , поделитесь опытом
а то может заново велосипед изобретаю
для теста написал

```1c
    ТабДок = Новый ТабличныйДокумент;
    Кол2 = Новый ТабличныйДокумент;

    Макет = ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(ОбластьШапка);

    Область1 = Макет.ПолучитьОбласть("Строка|Колонка");
    Область2 = Макет.ПолучитьОбласть("Строка|Колонка2"); // просто для наглядности
    Для А = 1 по 5 Цикл
    Кол2.Вывести(Область2);
    КонецЦикла;
    ОбластьУдалить = ";
    Для А = 1 по 5 Цикл
    ОбластьСлева = ТабДок.Вывести(Область1);
    Если А = 1 Тогда
    ОбластьСправа = ТабДок.Присоединить(Кол2);
    R = Строка(ОбластьСлева.Верх+1);
    R2 = Строка(ОбластьСлева.Верх + Кол2.ВысотаТаблицы - 1 );
    C = Строка(ОбластьСлева.Лево);
    C2 = Строка(ОбластьСправа.Лево-1);
    ОбластьУдалить = "R"+R+"C"+C+":R"+R2+"C"+C2;
    КонецЕсли;
    КонецЦикла;
    Если Не ПустаяСтрока(ОбластьУдалить) Тогда
    ТабДок.УдалитьОбласть(ТабДок.Область(ОбластьУдалить),ТипСмещенияТабличногоДокумента.ПоВертикали);
    КонецЕсли;
    Возврат ТабДок;
```
---
да дольше выдумывать )
---
а тож так делал...
ток еще влазилку

```1c
    Если Цел(Номер / 2) * 2 = Номер Тогда
    ТабДок.Присоединить(ОбластьМакета);
    Иначе
    ТабДок.Вывести(ОбластьМакета);
    КонецЕсли;

    Если Цел(Номер / 6) * 6 = Номер Тогда
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
```
---
мне бы чего попроще , запросом собрать , задать количество строк и вывести в 3 колонки на а4 ,
в принципе задача то частая (имо), но мне раньше не попадалась
---
да дольше выдумывать )
---
сделаю так если еще вариантов не подкинут
При поступлении товаров вводится срок годности номенклатуры. В отчете надо получить поле "ГоденДо". Создал новый отчет, в СКД написал запрос:
```1c
    ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Серия.ГоденДо,
    ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
```
 но в результате запроса получаю пустую полю "ГоденДо". Помогите пожалуйста, что и где не правильно делаю?
---
все нашел, спасибо за советы, они были в регистре "ДвиженияСерийТоваров"
---
а Серии заполнены?
---
При поступлении товаров нажимаю на кнопку "Указать серии" и ввожу срок годности "ГоденДо" (рис)
---
Зайди в серию и посмотри, заполнено ли там это поле. Скорее всего хранится не в серии, а где то в другом месте.
---
вы имеете в виду вот эту? (рис)
---
а вот в Консоль запросов, тоже все пусто, или я не тот регистр вызываю?
---
Выведите серии из регистра в консоль
---
так? но все равно пусто!
---
Т.е. в регистр ТоварыНаСкладах не записывается серия. Возможно она записывается в другой регистр, либо нужно установить какую то настройку, чтобы она записывалась в этот.
---
т.е. в настройках НСИ и Администрирование что то надо включить?
---
возможно, либо брать данные из другого регистра (посмотри движения документа), хотя конечно тут все зависит от задачи, которая перед тобой стоит.
---
да действительно данные были в другом регистре
---
А, ну дак серия пустая, поэтому и дата пустая.
---
а если перепровести регистратор, то серия не появляется? Под рукой нет УТ, в конфигураторе слева в поиске над деревом конфигурации введи "Серия" и он выдаст, в каких объектах еще есть это измерение, если только в твоем регистре, то нужно смотреть почему не заполняется, для начала проверить все настройки по ним
---
все нашел, спасибо за советы, они были в регистре "ДвиженияСерийТоваров"
---
Всем спасибо за ответы! Тема закрыто.
Добрейшего времени суток!

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

Начало такое:

```1c
    НекаяПеременная = "Текст";

    ВторостепеннаяФорма = ПолучитьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.ВторостепеннаяФорма");
    ВторостепеннаяФорма.Открыть();
```
---
Спасибо всем за ответы. Сделал так:

На главной форме:

```1c
    НекаяПеременная = "Текст";
    Параметр = Новый Структура;
    Параметр.Вставить("Основание", НекаяПеременная);
    ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.ВторостепеннаяФорма", Параметр);
```

На второстепенной форме:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("Основание") Тогда
    ТвояПеременная = Параметры.Основание;
    КонецЕсли;
    КонецПроцедуры
```
---
Можно еще использовать хранилище настроек, но если первый вариант взлетит, то так будет оптимальнее
---
Спасибо всем за ответы. Сделал так:

На главной форме:

```1c
    НекаяПеременная = "Текст";
    Параметр = Новый Структура;
    Параметр.Вставить("Основание", НекаяПеременная);
    ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.ВторостепеннаяФорма", Параметр);
```

На второстепенной форме:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("Основание") Тогда
    ТвояПеременная = Параметры.Основание;
    КонецЕсли;
    КонецПроцедуры
```
---
Можно так попробовать сделать:

```1c
    НекаяПеременная = "Текст";
    Параметры = Новый Структура("НекаяПеременная", НекаяПеременная);
    ВторостепеннаяФорма = ПолучитьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.ВторостепеннаяФорма", Параметры);
    ВторостепеннаяФорма.Открыть();
```
---
Так я пробовал, вот только не понял, как потом достучатся в другой форму к этому значению
---
Достучатся прост. В процедуре ПриСозданиеНаСервере обратится так:

```1c
    Если Параметры.Свойство("ТвойРеквизит") Тогда
    ТвояПеременная = Параметры.ТвойРеквизит;
    КонецЕсли;
```
Товарищи, помогите разобраться. Создаю программно форму, заполняю её данными и под конец хочу выполнить команду на форме. Как правильно сделать? Форма управляемая, процедура команды экспортная.

```1c
    //Форма.Элементы.ТоварыЗаполнитьЦеныПоСоглашению.Выполнить();
    //Форма.Выполнить("ТоварыЗаполнитьЦеныПоСоглашению");
```

Пробовал и так, и эдак, но не хочет выполняться. Всякие топики почитал, но решения так и не нашёл.
---
так команда по другому называется.

```1c
    Форма.АвтоТест_ЗаполнитьЦеныПоСоглашению(Неопределено);
```

Только учтите, что это не команду вызываете, а обработчик команды как обычную процедуру.
---
Команда где должна выполняться - на клиенте или на сервере.
Как вариант пытаешься с сервера вызвать клиентскую процедуру и ее не видно.
---
Если процедура команды не экспортная, то никак, иначе что-то вроде: Форма.ТоварыЗаполнитьЦеныПоСоглашению("")
---
Форма.ТоварыЗаполнитьЦеныПоСоглашению("")
Пардон. А в кавычках что? Пока что пишет, что "метода объекта нету"
---
Что угодно. Просто процедура команды требует параметр. Он имеет смысл, когда одна и та же процедура используется разными командами, чтобы определить какая именно команда ее вызывала.
---
А что значит Создаю программно форму
Может открываю программно?
Это 2 большие разницы!
---
открываю форму, создаю новый документ.
---
Поскольку пишете , что форма управляемая, то важно понимать разницу процедур выполняемых на сервере и на клиенте (если база клиент-серверная).
Если вы из серверной процедуры пытаетесь вызвать клиентскую процедуру - то ясно будет "метода объекта нету", ибо на сервере его нету
Весь код приведите для ясности.
Пока информации вы предоставили не достаточно...
---
Команда которую нужно выполнить на клиенте.

```1c
    &НаКлиенте
    Процедура АвтоТест_ЗаполнитьЦеныПоСоглашению(Команда) Экспорт

    Если ПродажиКлиент.НеобходимоЗаполнениеЦенПоСоглашению(Объект, "Товары", НСтр("ru='Товары'")) Тогда

    ЦеныРассчитаны = ЗаполнитьЦеныПоСоглашениюСервер();
    ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);

    КонецЕсли;

    СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);

    КонецПроцедуры
```
---
так команда по другому называется.

```1c
    Форма.АвтоТест_ЗаполнитьЦеныПоСоглашению(Неопределено);
```

Только учтите, что это не команду вызываете, а обработчик команды как обычную процедуру.
---
не вызовет с сервера команду. Физически формы не будет из которой вызывать что-то нужно
---
Вы о чем?
Или про что?
Я написал, что "вызовет с сервера команду" , или что форма будет физически?
Вы о чем???

И вообще вызываются не команды! А экспортные процедуры...
---
] Если вы из серверной процедуры пытаетесь вызвать клиентскую процедуру

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

И вообще вызываются не команды! А экспортные процедуры...

придерживался терминов ветки. К слову из формы можно вызвать не экспортную серверную. Как то так

```1c
    Форма.заполнитьНаСервере()
```
Добрый день.
Подскажите, направьте..
В СКД вывожу отчет в таблице с колонкой, необходимо не по всем ресурсам выводить итог

В каком направлении копать?
Благодарю.
---
Только макет, можно либо вообще итоги выключить, но это не устраивает.
Задайте макет и оставтье там только нужные ресурсы.
---
Идете в правильном направление.
Поставьте галочки на всех уровнях, кроме общие итоги. А там убирайте по мере не нужности.
---
Но ведь, сама колонка выводиться.. а не надо чтобы выводилась даже с пустым-нулевым значением.
---
Хм, если хотите отключить итоги по горизонтали, только для определенных ресурсов, то возпользуйтесь макетом, выведите в макет, только те ресурсы, которые нужны.
---
Или еще попробуйте в группировки колонок, вместо авто, раскройте выбранные поля и уберите ваш не нужный ресурс
---
У Вас на первом скрине снимите галку с ресурса "реализация руб." но данный ресурс должен быть в основном отчете.
---
Упс.. тогда данный ресурс совсем не выводится.. ((
---
Хм, тут скорее всего вариант только с макетом.
---
Упс.. тогда данный ресурс совсем не выводится.. ((
---
Только макет, можно либо вообще итоги выключить, но это не устраивает.
Задайте макет и оставтье там только нужные ресурсы.
Подскажите ка сделать отчет о розничных продажах по алфавиту? без дополнительной обработки или отчета.
Возможно ли это?
---
Сортировать по возрастанию не пробовал?
---
В документе Отчет о розничных продажах? Если да, то по кнопке Еще - Сортировать по возрастанию.
---
Сортировать по возрастанию
Можно отсортировать по любой колонке , на которой стоит курсор...
---
Все разобрался! Умные пользователи изменили форму и убрали галочку с сортировки.
---
Вы о чем?
Что и где должно быть по алфавиту?
---
Сортировать по возрастанию не пробовал?
---
В документе Отчет о розничных продажах? Если да, то по кнопке Еще - Сортировать по возрастанию.
---
Сортировать по возрастанию
Можно отсортировать по любой колонке , на которой стоит курсор...
---
А по умолчанию он как вообще заполняется, хаотично?? Вроде как обычно все по алфавиту располагается в типовых, знаю только что у зуп своя тема - есть настройки заполнения в порядке подразделения наименования + что-то еще, и это все настраивается по приоритету
---
Все разобрался! Умные пользователи изменили форму и убрали галочку с сортировки.
Здравствуйте подскажите как исправить ошибку во внешней обработке https://infostart.ru/public/564699/ ЗУП 3.1.8.185, ошибка {ОбщийМодуль.КадровыйУчетБазовый.Модуль(4914)}: Среди кадровых данных сотрудников нет данных с именем "АвансПериодЗаписи"
Желательно подробно, спасибо.
---
Проверяй, прикрепил.
(обработку удалил из общего доступа)
---
Включаешь отладку - Останавливаешься по ошибке - Смотришь стэк вызовов - Ищешь откуда берется АвансПериодЗаписи - Правишь
---
Проверяй, прикрепил.
(обработку удалил из общего доступа)
---
спасибо!)
---
наверно надо было в личку отправить обработку. Нет? ;)
---
А в личку можно прикрепить файл?
---
Во всяком случае, пока еще не поздно отредактировать сообщение, удалив чужую разработку из общего доступа.
---
В личке можно узнать адрес и отправить на эл почту.
На предыдущих конфигурациях (УТ и Розница) всё работало, а тот на рознице 2.2.9.20 перестало... Добавляю в список номенклатуры свои столбцы (Автор, Издательство, Цена), они есть в конфигураторе, но при настройке формы их нет. Переименовал столбец "Количество" в "Кол", эти изменеия отобразились. В базе "до обновления" всё работает, сравнил настройки - всё сделал одинаково, 1 в 1. Что я делаю не так? :)
---
Где-то подменяется запрос для динамического списка, скорее всего.
---
Судя по скринам есть подозрение на разные формы, одну вы правите в конфигураторе, а в режиме 1С выбирается совершенно другая. Данная ситуация похожа с формами Партнера и Контрагента в УТ, когда в зависимости от настроек конфигурации могут выводится разные формы.
---
Это вряд-ли, т.к. изменение столбца количество работает.
(1) Скорей всего где-то програмно меняется запрос в зависимости от каких-нибудь функциональных опций. Посмотрите в отладчике запрос когда форма уже открыта. Вангую, что ваших добавленных полей там нет. А нет данных - нет отображения.
---
Да, вы правы, см. ответ ниже
---
Пробовали сбросить настройки формы?
Настройки формы\Все действия\Установить стандартные настройки
---
Пробовал, не помогает
---
Где-то подменяется запрос для динамического списка, скорее всего.
---
Действительно, запрос подменялся. Так как конфигурация нестандартная (Рарус "Книжный магазин"), то был самописный модуль общего назначения, в котором в отдельной процедуре форме списка присваивался свой запрос. Видимо, это сделано для того, чтобы при обновлении стандартных форм не затрагивались самописные фишки. По отладчику найти не мог - эти поля (Автор, Издательсто, Цена) были в форме. Нашел я его просто через глобальный поиск по фразе "Номенклатура.НаименованиеПолное"
Досталась от коллеги обработка, нужно довести до ума, а ума не хватает,
смысл в том чтоб загружать документ и программе указать соответствия с базой, для этого добавить нужно справочник, но я не пойму какие должны быть для него реквизиты и, или табличные формы, помогите пожалуйста, посмотрите обработку
---
все сделал сам спасибо
---
Создал справочник Соответствия реквизит НаименованиеУКонтрагента обработка формирует накладную но не сохраняет соответствия
 и выбивает такую ошибку Скрытый текст{ВнешняяОбработка.ЗагрузкаПоступленияИзЭкселя.Форма.Форма.Форма(19)}: Поле объекта не обнаружено (Контрагент)
    Если Отбор.Ссылка.Контрагент = ЭлементыФормы.ПолеВвода1.Значение Тогда
---
все сделал сам спасибо
---
Кому интересно могу помочь,
Бухгалтерия 3. Актуальный релиз.
Подскажите почему прочерки:
---
Договор стоял с комиссионером.
---
Товар или услуги? И заполнены ли поля для печатных форм?
---
а в каком случае не должно печататься?
товары, без ндс, гтд...
---
м.б., продавец и покупатель совпадают с грузополучателем и грузоотправителем
---
нет, отличаются... но даже еслибы совпадали вроде должны печататься.
Может по положению какому нибудь так должно быть,
хотя судя по итс во всех случаях заполнено.

и на ошибку релиза не похоже - 5 релизов назад также не печаталось.
---
Договор стоял с комиссионером.
Имеем подчиненную РИБ. Центр не внимает нашим просьбам. Поэтому появилась мысль:
Отключить базу.
Добавить подписку "ПриЗаписи" одному из документов, в которой будет только вывод сообщений пользователю.
Подключаем базу обратно.
Вопрос: слетит ли наша доработка после очередного обмена с центром, да и вообще, может что то сломаться после таких действий?
---
Провел эксперимент.

Установил типовую демонстрационную базу.
Настроил РИБ.
Отвязал подчиненную базу.
Добавил в ней подписку.
Привязал подчиненную базу обратно.
Делаю обмен, Все работает!
...
дальше
...
В центральной базе вношу изменения в конфигурацию.
Делаю обмен.
И моя подписка в подчиненной базе исчезает, Получается конфигурация замещается, а не объединяется. :(((

Вопрос снят.
---
Будет вероятно ошибка несоответсвий конфигураций
---
а в центре подписка эта есть?
---
Будет ошибка несоответствия конфигураций и обмен не будет проходить, конфигурации в РИБ должны быть одинаковыми.
---
Как только отключите базу , она перестанет быть переферийной. А как потом сделать опять переферийной?
---
можно включить обратно обработкой же
---
в центре такой подписки точно нет.
---
тогда тем более бесполезно. как вариант можно расширение попробовать заюзать
---
"Центр не внимает нашим просьбам!"
т.е. вы хотите сделать то чтобы работало только в РИБе а в центральной нет? сделайте условие ГлавныйУзел() в коде и вы легко определите в центральной или перефирийной находитесь и можете внести код под условие
---
Для расширения, необходимо отключить режим совместимости :(
---
Провел эксперимент.

Установил типовую демонстрационную базу.
Настроил РИБ.
Отвязал подчиненную базу.
Добавил в ней подписку.
Привязал подчиненную базу обратно.
Делаю обмен, Все работает!
...
дальше
...
В центральной базе вношу изменения в конфигурацию.
Делаю обмен.
И моя подписка в подчиненной базе исчезает, Получается конфигурация замещается, а не объединяется. :(((

Вопрос снят.
---
ну это ожидаемо что заменяется
---
будет.
Есть код добавления файла, но необходимо избавиться от модальности. Реализация должна быть через справочник "Файлы". Не совсем понимаю, что необходимо сделать.

Вот текущий код:

```1c
    &НаКлиенте
    Процедура ПрикрепитьДокумент(Команда)

    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.Заголовок = "Выберите файлы!";
    ДиалогОткрытияФайла.ПолноеИмяФайла = ";
    ДиалогОткрытияФайла.МножественныйВыбор = Истина;

    Если ДиалогОткрытияФайла.Выбрать() Тогда
    МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
    Файлы = ПоместитьВоВременноеХранилище(МассивФайлов, ЭтаФорма.УникальныйИдентификатор)
    Иначе
    Предупреждение("Файл не выбран!" + ДиалогОткрытияФайла.ПолноеИмяФайла);
    КонецЕсли;
    КонецПроцедуры
```
---
Также сохранять в хранилище, а в справочнике просто хранится путь к файлу. Таким образом можно всегда посмотреть содержимое всего хранилища по справочнику (при условии, что все файлы сохраняются с помощью справочника)
---
Ключевое это ДиалогОткрытияФайла.Выбрать(), заменить на ДиалогОткрытияФайла.Показать(Оповещение)
Необходимо будет сделать оповещение, ну и соответственно переписать процедуру.
---
Так как после показать кода не должно быть, весь этот код должен будет вынесен в отдельную процедуру, которая будет вызвана оповещением.
---
Спасибо большое, но это лишь уход от модальности. А как в типовой справочник это поместить!? Необходимо в справочнике "Файлы" сохранять файл..
---
Также сохранять в хранилище, а в справочнике просто хранится путь к файлу. Таким образом можно всегда посмотреть содержимое всего хранилища по справочнику (при условии, что все файлы сохраняются с помощью справочника)
Вопрос по задачам 1.16 - 1.18 1с специалист (по платформе)
Нужно ли использовать для состава стеллажей регистры сведений. На мой взгляд смысла нет. Если одна и та же деталь не может относится к разным стеллажам - то в номенклатуре добавляем реквизит "Стеллаж" (Справочники.Стеллажи) и количество (соответственно одна деталь используется только один раз). Если возможно использование детали для разных стеллажей - то у стеллажа добавляем табличную часть с комплектацией Деталь/Шт (что регистр сведений, что табличная часть - это дополнительная таблица, с которой идет связывание по Стеллажу, а какие-либо специфические моменты РС типа ПолучитьПоследнее здесь не используются.)
---
Делать на РС обязательно, проверяется знаете ли вы, как контролируется уникальность в регистрах, то есть что поместить в измерения, что в ресурсы, если неправильно сконструировать снимут баллы. А то что сделать можно по-другому, это понятно, но нужно именно так.
---
Делать на РС обязательно, проверяется знаете ли вы, как контролируется уникальность в регистрах, то есть что поместить в измерения, что в ресурсы, если неправильно сконструировать снимут баллы. А то что сделать можно по-другому, это понятно, но нужно именно так.
---
что регистр сведений, что табличная часть - это дополнительная таблица, с которой идет связывание по Стеллажу
Только отличаются почти всем.
Начиная от того, что для добавления записи в ТЧ надо получать объект заканчивая составом индексов.
Решение с ТЧ в рамках этой задачи будет архитектурно неверно. Снимут баллы или нет - как пятка экзаменатора захочет.
Здравствуйте! Такой вопрос....имеется простейший запрос...выбираю остатки товаров на складе. Все норм, но не выводятся нулевые остатки, пробовал соединить со справочником Номенклатура эффект тот же...подскажите как быть? Требуется мне лишь отбор по складу, период указывать не обязательно нужно выбрать данные на текущий момент.

```1c
    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура1
    ПО (ТоварыНаСкладахОстатки.Номенклатура = Номенклатура1.Ссылка)
```
---
Надо к справочнику номенклатуры остатки пристегивать, а не наоборот, т.е выборку делать из справочника.
---
Попробуйте ПОЛНОЕ соединение вместо левого
https://helpme1c.ru/soedineniya-v-zaprosax-v-1s-8-v-primerax

```1c
    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура1
    ПО (ТоварыНаСкладахОстатки.Номенклатура = Номенклатура1.Ссылка)
```
---
пробовал, не работает.
---
Надо к справочнику номенклатуры остатки пристегивать, а не наоборот, т.е выборку делать из справочника.
---
спасибо)
Добрый вечер.
Подскажите пожалуйста, формирую отчет скд, данные берутся из документа, при выводе нужно проверять условие: Если Не ЗначениеЗаполнено (МойДокумент.НомерДока) Тогда МойДокумент. НомерДока = МойДокумент.Номер. Как мне реализовать такое условие?
---
Номера строкового типа?
Можно в самом запросе:

```1c
    ВЫБОР
    КОГДА МойДокумент.НомерДока = "
    ТОГДА МойДокумент.Номер
    ИНАЧЕ МойДокумент.НомерДока
    КОНЕЦ КАК НомерДока
```

Можно создать вычисляемое поле НомерДокаПредставление.
В запросе получить и МойДокумент.НомерДока и МойДокумент.Номер.
И указать выражение:

```1c
    Выбор Когда ЗначениеЗаполнено(НомерДока) Тогда НомерДока Иначе Номер Конец
```
---
Номера строкового типа?
Можно в самом запросе:

```1c
    ВЫБОР
    КОГДА МойДокумент.НомерДока = "
    ТОГДА МойДокумент.Номер
    ИНАЧЕ МойДокумент.НомерДока
    КОНЕЦ КАК НомерДока
```

Можно создать вычисляемое поле НомерДокаПредставление.
В запросе получить и МойДокумент.НомерДока и МойДокумент.Номер.
И указать выражение:

```1c
    Выбор Когда ЗначениеЗаполнено(НомерДока) Тогда НомерДока Иначе Номер Конец
```
---
Спасибо)) Все получилось!
Вот для печатной формы:

```1c
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");

    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Акт услуг");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу "Реализация товаров и услуг"");
```

а если мне нужна не печатная форма, а внешняя обработка заполнения табличной части документа, то какой "вид" я должен прописать?
---
"ЗаполнениеОбъекта" или ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта()
---
"ЗаполнениеОбъекта" или ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта()
---
Да,
(2) спасибо. Вот тут подробная инфа, если кому потребуется http://programmist1s.ru/dopolnitelnyie-otchetyi-i-obrabotki-1s-8-3/
---
Вот только непонятно еще какой в команде проставить модификатор.
Во внешней печатной форме -это "ПечатьMXL"
---
Вот тут еще более подробно с примером http://programmist1s.ru/obrabotka-zapolneniya-tablichnoy-chasti-1s-8-3-upravlyaemyie-formyi-na-primere/
---
Модификатор – дополнительный модификатор команды. Используется для дополнительных обработок печатных форм на основе табличных макетов, для таких команд должен содержать строку ПечатьMXL
https://its.1c.ru/db/bsp21doc#content:22:1

Короче, Модификатор используется только для печ. форм.