arefaste/1C_Forums huggingface dataset:
Добрый день уважаемые коллеги. Требуется совет или пример вот по какому вопросу.
В запросе на определенном этапе имеем табличку с колонками:
Дата,
Клиент,
Фирма и т.д.

Требуется на следующем этапе из регистра накопления с типом остатки
получить остатки на каждую дату из таблички:
Например:
Дата 16.04 Остаток - 32500р.
Дата 23.04 Остаток - 490р.
Дата 25.05 Остаток - 21300р. и тд.
Получать остатки на каждую дату не хочу, можно ли получить остатки только по этим датам ?
---
Связывайте не с виртуальной таблицей остатки, а с физической. Связь по периодам: Период из регистра меньше или равно Даты из ВТ.
Группируйте по измерениям. Суммируйте поле ресурса, точнее выражение типа "ВЫБОР": если вид движения - Приход, тогда +ресурс, иначе -ресурс.
---
на каждую и не надо, нужно на те даты что в ВТ, но срез остатка уже делать в ручную (без .Остатки)
---
не понял, есть 1 ВремТаб где даты, добавляю регистр, по измерениям я связать могу, но в ВиртТаб регистра какую дату я укажу ? там ж только параметр.
---
Связывайте не с виртуальной таблицей остатки, а с физической. Связь по периодам: Период из регистра меньше или равно Даты из ВТ.
Группируйте по измерениям. Суммируйте поле ресурса, точнее выражение типа "ВЫБОР": если вид движения - Приход, тогда +ресурс, иначе -ресурс.
---
Спасибо, получилось) Что-то голова к вечеру не варит.
---
почитайте https://infostart.ru/public/102435/ и https://forum.infostart.ru/forum9/topic51150/
---
видел эти темы, поэтому и написал "Получать остатки на каждую дату не хочу"
---
вместо производственного календаря возьмите даты из своей временной таблицы
---
спасибо.
Добрый день всем.

Суть проблемы в следующем:
был переход с платформы 8.1 на 8.3 (8.3.13.1644) и обновление УТ10.3 (не типовая) на (10.3.52.2).

Были внешние печатные формы. С ними проблем особо не было.Так вот. В документе Реализация товаров и услуг при нажатии на ПФ сначала выходит форма выбора ответственного лица и уже он заносится в саму ПФ (его ФИО и должность). С 2 сотрудниками проблем нет, всё корректно заполняется, а по ещё двум сотрудникам не хочет проставлять должность.
При этом запускал базу до обновления - там всё отлично. Но опять же, была доработка (без неё была такая же фигня с этими двумя сотрудниками) в ОбщемМодуле в процедуре ФормированиеПечатныхФорм.

До:

```1c
    Запрос.Текст = "
    |ВЫБРАТЬ ПЕРВЫЕ 1
    | Должность.Представление КАК Должность
    |ИЗ
    | РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних(&ДатаПериода, СтруктурнаяЕдиница = &Организация)
    |ГДЕ
    | ФизическоеЛицо = &ФизЛицо
    |";
```

После:

```1c
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
    | ОтветственныеЛицаОрганизацииСрезПоследних.Должность.Представление КАК Должность
    |ИЗ
    | РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних(
    | &ДатаПериода,
    | СтруктурнаяЕдиница = &Организация
    | И ФизическоеЛицо = &Физлицо) КАК ОтветственныеЛицаОрганизацииСрезПоследних";
```

Но простая замена кода не помогает. Проблема остаётся. Больше вроде ничего не затрагивается.
Какие варианты могут быть? В РегистреСведений Ответственные лица оргнизации всё есть.
---
В регистре сведений ответственные лица по этим сотрудникам не проставлена должность. Проверьте
---
В регистре сведений ответственные лица по этим сотрудникам не проставлена должность. Проверьте
---
минут через 30 смогу только. Но сразу скажу, что и в старой версии базы так же не было там записей о них
---
Либо нет приема на работу - нет документа. Именно там проставляется должность
А у вас как то по другому делалось видимо, но после обновления слетело
Я же пишу про типовой способ
---
Ещё может быть: Зарплата и кадры -> Сотрудники -> Там проставить должность.
Добрый день! Подскажите, можно ли программно реализовать вывод прямоугольника в табличный документ подобно тому, что интерактивно делается из конфигурации, после создания нового табличного документа через Меню - Файл - новый Табличный документ и далее добавление через Таблица - Рисунки - Прямоугольник самостоятельно нарисовать прямоугольник любого размера.
Можно ли программно сделать так, чтобы, например, нажал на кнопку добавить прямоугольник и появляется такой же вид курсора и ты сам его рисуешь на форме?
---
Нажимаешь правой кнопкой на пустое поле где файл, правка, таблицы.
Потом Настройка ищешь прямоугольник и перетягиваешь рядом со справкой
---
Открываешь печатную форму далее Таблица-Вид-Редактирование.
 и изменяешь как угодно.
---
Точнее выводишь на печать документ свой.
---
требуется вывод по кнопке: нажал на кнопку, например, добавить прямоугольник, и дальше рисуешь его
---
Нажимаешь правой кнопкой на пустое поле где файл, правка, таблицы.
Потом Настройка ищешь прямоугольник и перетягиваешь рядом со справкой
---
Паинт ваяете? ;-)
---
)) Не совсем
---
```1c
    Прямоугольник = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Прямоугольник);
    Прямоугольник .Высота = 10;
    Прямоугольник .Ширина = 20;
    Прямоугольник .Верх = 10;
    Прямоугольник .Лево = 10;
```
Хочу получить отчет и отправить его на сайт.
Проблема в том что я не знаю как мне получить сформированный отчет программно.
Конечно,я мог бы получить отчет вручную "Сохранить как " итд. но мне надо автоматизировать все это.
---
Создавай макет word и его заполняй программно.
Можно скачать готовую обработку у кого-то с выводом в word и переделать под себя.
---
В форме отчета есть реквизит "Результат", тип табличный документ. Может от туда взять как нибудь ?
---
Создавай макет word и его заполняй программно.
Можно скачать готовую обработку у кого-то с выводом в word и переделать под себя.
---
Это вариант, но у меня уже есть отчет который формируется и вот его мне надо отправить
---
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.DOCX);
---
Так мне надо хранить в диске перед отправкой?
---
Очевидно, да. Это проблема?
---
Да, так как не хочу хранить на диске перед отправкой :(
какой вариант правильнее 1 или 2
---
могут быть разные результаты:

```1c
    ВЫБРАТЬ
    МАКСИМУМ(ЕСТЬNULL(ВложенныйЗапрос.Поле, 0)) КАК Поле
    ИЗ
    (ВЫБРАТЬ
    -2 КАК Поле

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    -1

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    NULL) КАК ВложенныйЗапрос
```

Даст 0

```1c
    ВЫБРАТЬ
    ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Поле), 0) КАК Поле
    ИЗ
    (ВЫБРАТЬ
    -2 КАК Поле

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    -1

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    NULL) КАК ВложенныйЗапрос
```

Даст -1
---
ни 1 ни 2, в 1 случае проверка на макс 1 числа, во втором выбор максимума из 0 и переменной в который судя по контексту может лежать null
Макс(isnull(поле,0),0)
---
оба варианта имеют права на жизнь (не считая того что Макс там для красоты), всё зависит от задачи.
---
2й вариант бессмысленен, т.к. isnull там лишнее.
---
isnull там лишнееНе всегда. Агрегатная функция МАКСИМУМ помимо прочего может применяться к таблице, где вовсе нет записей. В таком случае ее результатом будет NULL. Здесь-то и может пригодиться функция ISNULL.
---
А вы как думаете?
---
я до сегодня и не задумывался
---
Максимум из одного значения? И какой смысл?
---
где я сказал про одно число? я говорю про синтаксис
---
Где вы говорили про синтаксис? оба варианта неверные. передается 1 переменная туда где ожидаются как минимум 2
---
" isnull" как бы подразумевает запрос .
---
Ничего это не подразумевает кроме того что в переменной может лежать null и его надо обработать, с таким же успехом там может лежать значение которое возвращает какая-то функция.
---
могут быть разные результаты:

```1c
    ВЫБРАТЬ
    МАКСИМУМ(ЕСТЬNULL(ВложенныйЗапрос.Поле, 0)) КАК Поле
    ИЗ
    (ВЫБРАТЬ
    -2 КАК Поле

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    -1

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    NULL) КАК ВложенныйЗапрос
```

Даст 0

```1c
    ВЫБРАТЬ
    ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Поле), 0) КАК Поле
    ИЗ
    (ВЫБРАТЬ
    -2 КАК Поле

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    -1

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    NULL) КАК ВложенныйЗапрос
```

Даст -1
---
Потому что МАКСИМУМ игнорирует NULL.
Добрый день!
Прошу помочь, в отчет тянутся элементы иерархического справочника. Нужно скрыть нижний дублирующийся элемент, но т.к. он же является родителем, то группирует итоги по дочерним элементам, суммы при этом не должны меняться. Каким образом это сделать? Суммы у Родителя настраиваются группировкой по иерархии, а по дочерним элементам тянутся запросом
https://ibb.co/chy9FC2

Если использовать условие, то в группируемый итог он не попадает
ГДЕ
 НЕ Показатель.Ссылка В
    (ВЫБРАТЬ
     Показатель.Родитель
    ИЗ
     Справочник.Показатели КАК Показатели)
---
Решено отбором. Подсказал пользователь Tonik992 на соседнем борде
1. https://ibb.co/sKRM9H0 - вычисляемые поля.
2. https://ibb.co/2hv5vZW - ресурсы.
3. https://ibb.co/CKNg6x3 - структура отчета.
---
А пользователей не смутит тот факт, что сумма по детальным записям группировки будет не сходится с итоговой суммой по иерархической группировки? На Вашем же примере: в группе "Сырье и материалы" будут указаны 2 позиции по 12 и 15 ед. согласно плану, однако в самой группе будет значится значение 37, вместо ожидаемого 27 ед.

Быть может Вам попробовать зайти с другого конца? Каким-либо образом выделить (например шрифтом или цветом) группы? У Вас показатели - это иерархический справочник групп и элементов, или только элементов?
---
В данном случае это и есть просьба пользователя. Как они будут считать это уже не мой вопрос)
Я предлагал также настроить условное оформление для верхних элементов, но такой расклад не устроил. Хотя на данном этапе у меня также не было соображений каким образом определять что это группировка
---
Нашел решение для выделения поля группировки
 ВычислитьВыражение("Ссылка",,"Группировка","Последняя")
---
это разные элементы? если нет то почему разное количество в плане?
---
это один и тот же элемент. Это группировка к примеру сырье и материалы = в т.ч сырье + инструмент + сырье и материалы
Вот из самой группировки мне нужно "убрать" его. Но план также должен считаться
---
Честно говоря плохо представляю себе запрос, которым можно получить такой результат, если не пытаться достичь этого специально
---
В запросе ничего влияющее на конечный результат - нет. Все дело в полях группировки в настройках самой группы, в которой указано что группировать нужно по иерархии. Т.к. Элемент иерархического справочника может содержать элементы из другого справочника, то уже по этим элементам вычисляется факт. Ресурсы (план факт отлонение)отчета рассчитываются также по иерархии. Поэтому Верхние элементы иерархии не являются результатом запроса.
---
Решено отбором. Подсказал пользователь Tonik992 на соседнем борде
1. https://ibb.co/sKRM9H0 - вычисляемые поля.
2. https://ibb.co/2hv5vZW - ресурсы.
3. https://ibb.co/CKNg6x3 - структура отчета.
Добрый день, помогите разобраться с отбором.
Задача такая, создается ПостроительОтчета программно, на форме есть реквизит КомпоновщикНастроек.Отбор, Как связать отбор на форме с построителем ?
---
Может меня поправят, но построителя отчета на УФ нет (по крайне мере не должен работать), Вам нужно копать в сторону СКД
---
работа с построителем отчета в 1с
https://n-master.blogspot.com/2011/02/1_22.html
---
Мне нужно на управляемых формах
---
Может меня поправят, но построителя отчета на УФ нет (по крайне мере не должен работать), Вам нужно копать в сторону СКД
---
Даже если есть возможность засунуть построитель отчетов в УФ, то этого делать не нужно. Правильно подсказали в (4) - пользуйте СКД
---
(5) Спасибо
Пытаюсь реализовать на форме формат времени, сделал поле размером 5 символов и решил каждый третий символ менять на ":" но застрял на событии которое вызывается при вводе текста - не могу словить когда нужно искать и заменять символ.
```1c
    &НаКлиенте
    Процедура ПерерывНачалоИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)

    Найден = Сред(Текст,3,1);
    ПерерывНачало = СтрЗаменить(Текст,Найден,":");

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

что то типа такого , но не попадает в процедуру почему то.
---
Есть такое свойство у поля ввода, называется "Маска".
---
Лучше реквизит сделайте типа дата и формат редактирования для его элемента проставьте mm:ss
---
а есть такой формат?
---
в констукторе вы его не найдете, вбейте руками "mm:ss"
---
Спасибо, буду знать. Но немного не то , это уже если придираться - в поле ставит время и секунды и ещё и 00:00:00 AM - у меня банальная задача время обеда в форме поставить , просто стало интересно как это можно сделать красиво. По функционалу самое то - просто и правильно.
---
Есть такое свойство у поля ввода, называется "Маска".
---
99:99
Но только акктуратнее с маской, при копипасте, копировании и простом заполнении значение строкового реквизита может меняться, то есть в одном случае может быть 9999 в другом 99:99, и это жутко потом мешает, не забудьте про постобработку
---
тип даты "Время" и формат из(1) разве не решает задачу, зачем заморочки с маской?
---
Ну может человек хочет руками попробовать, или делает свою уникальную форму или тестовая задача на терпение и труд.
Формат время он без души)
Здравствуйте. Создаю дополнительную печатную форму и там есть поле ИтогоПоСтранице. Никак не могу понять, как посчитать допустим параметр ИтогоКоличествоНаСтранице если документ получился на нескольких страницах?
---
https://its.1c.ru/db/metod8dev#content:2226:hdoc К ознакомлению
Пример как раз с итогом по странице
---
Добрый вечер.
В стандартных конфигурациях вроде ьы в цикле все отрабатывает и каждая строка плюсует сумму к Сумме по странице.
Это если вкратце.
Если вы внешнюю печатную форму делаете с использованием СКД, что нужно что-то другое придумывать
---
Да в СКД всё понятно, а во внешней печатной форме никак не пойму что нужно сделать. Как вот вытащить именно сумму тех строк которые находятся на странице 1
---
Ест такая функция - ПроверитьВывод.
Ей и проверяй, когда страница заканичивается.
---
https://its.1c.ru/db/metod8dev#content:2226:hdoc К ознакомлению
Пример как раз с итогом по странице
---
Спасибо!! Всё получилось на отлично
```1c
    Соот = Новый Соответствие;
    Массив = Новый Массив; Н = 0; К = 0;
    Для каждого ФизЛицо Из ФизическиеЛица Цикл
    К = К + 1;
    Массив.Добавить(ФизЛицо);
    Если К % 2000 = 0 Тогда
    Н = Н + 1;
    Соот.Вставить("Н" + Н, Массив);
    Массив.Очистить();
    КонецЕсли;
    КонецЦикла;

    Если Массив.Количество() > 0 Тогда
    Н = Н + 1;
    Соот.Вставить("Н" + Н, Массив);
    Массив.Очистить();
    КонецЕсли;
```

Почему "Массив", во всех ключах соответствия одинаковый?
Как обновить массив.
---
Замени

```1c
    Массив.Очистить();
```

на

```1c
    Массив = Новый Массив;
```
---
И лучше без "хвостов":

```1c
    ПорцииФизЛиц = Новый Соответствие;
    Если ФизическиеЛица.Количество() > 0 Тогда
    РазмерПорции = 2000;
    НомерФизЛица = 1; НомерПорции = 1;
    ПорцииФизЛиц.Вставить("Н" + НомерПорции, Новый Массив);
    Для Каждого ФизЛицо Из ФизическиеЛица Цикл
    Если НомерФизЛица % (РазмерПорции + 1) = 0 Тогда // начинаем новую порцию
    НомерПорции = НомерПорции + 1;
    ПорцииФизЛиц.Вставить("Н" + НомерПорции, Новый Массив);
    КонецЕсли;
    ПорцииФизЛиц["Н" + НомерПорции].Добавить(ФизЛицо);
    НомерФизЛица = НомерФизЛица + 1;
    КонецЦикла;
    КонецЕсли;
```
---
Его необходимо создавать на каждой итерации цикла заного. Очистка не поможет, т.к. в соответствие Вы помещаете не копию массива, а ссылку на него. Потому то во всех элементах соответствия одни и те же значения: массив один и тот же.
---
какой массив получается?
попробуй добавлять в массив ссылку

```1c
    Массив.Добавить(ФизЛицо.Ссылка);
```
---
Замени

```1c
    Массив.Очистить();
```

на

```1c
    Массив = Новый Массив;
```
---
И лучше без "хвостов":

```1c
    ПорцииФизЛиц = Новый Соответствие;
    Если ФизическиеЛица.Количество() > 0 Тогда
    РазмерПорции = 2000;
    НомерФизЛица = 1; НомерПорции = 1;
    ПорцииФизЛиц.Вставить("Н" + НомерПорции, Новый Массив);
    Для Каждого ФизЛицо Из ФизическиеЛица Цикл
    Если НомерФизЛица % (РазмерПорции + 1) = 0 Тогда // начинаем новую порцию
    НомерПорции = НомерПорции + 1;
    ПорцииФизЛиц.Вставить("Н" + НомерПорции, Новый Массив);
    КонецЕсли;
    ПорцииФизЛиц["Н" + НомерПорции].Добавить(ФизЛицо);
    НомерФизЛица = НомерФизЛица + 1;
    КонецЦикла;
    КонецЕсли;
```
Как из общего модуля можно открыть и выполнить обработку. Проблема программно запустить на выполнение собственной команды Формы обработки
---
Фор.Команда1(Неопределено);
---
как видно у вас управляемые формы. Значит сразу неверно делать

```1c
    Фор = ОткрытьФорму("Обработка.НЧ_ПредоставлениеОтпускаСотрудникам.Форма");
    ЗавершитьРаботуСистемы(Ложь);
```

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

А процедуру в обработке поместили в модуль менеджера или в форму? сделали её экспортной? какой перепроцессор задали НаСервере / НаКлиенте ?
---
А процедуру в обработке поместили в модуль менеджера или в форму?
У внешней обработки нет модуля менеджера.
---
а не проще в самой обработке ПриОткрытии или ПриСозданииНаСервере запускать нужную процедуру? Тогда будет достаточно просто ее открыть.
---
Нужно больше деталей, может скриншот вставите?
---
При запуске БД ЗУп под определенным пользователем нужно запустить/выполнить обработку. Открывать открывается, а выполнить команду не понимаю, ничего не могу найти.

Процедура ПриНачалеРаботыСистемы()

 //Тест отправка сообщений
 Если НРег(ИмяПользователя()) = "otpusk" Тогда
  Фор = ОткрытьФорму("Обработка.НЧ_ПредоставлениеОтпускаСотрудникам.Форма");

???????

  ЗавершитьРаботуСистемы(Ложь);
 КонецЕсли;
---
вот так открыть форму и сразу завершить работу? Так это не будет работать.
Тут или открывать модально, но модальные вызовы уже не используют.
Или завершение работы осуществлять в самой обработке.

Далее. Какую команду пытаетесь запустить на форме обработки? Запустить можно просто как процедуру, как вызов обработчика не получиться.
Фор.ИмяНужнойПроцедуры(Неопределено);
---
без уточнения версии платформы и контекстов разговор будет долгим и бесполезным
---
платформа 1С:Предприятие 8.3 (8.3.13.1513), конфигурация ЗУП 3.1.5.421
---
```1c
    ВнешниеОбработки.Создать(ИмяФайла).МетодОбработки(Параметры, ...);
```
---
В обработке нужно выполнить команду с "формы" (нажатие кнопки ) выполнение процедуру Команда1

```1c
    &НаСервере
    Процедура Команда1НаСервере(ТабДок,СсылкаНаОбъект)
    // Вставить содержимое обработчика.

    ..................

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

    &НаКлиенте
    Процедура Команда1(Команда)Экспорт

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

    СсылкаНаОбъект = Объект.ДатаСообщ;

    Команда1НаСервере(ТабДок,СсылкаНаОбъект);
```

Кусок кода из обработки
---
Фор.Команда1(Неопределено);
---
Сп, помогли все заработало
Нужно сохранить файл, в папку, к которой имеет доступ только юзер под которым логинится пользователь в при запуске системы. У пользователя под которым работает сервер 1С нет доступа к папкам пользователей. 1С пытается сохранить файл под администратором сервера и ругается что нет доступа к выбранной папке. Можно ли выполнить сохранение файла под текущим пользователем системы а не под админом ?
---
Передать файл с сервера на клиента.
---
ЗапуститьПриложение("NET USE \\папка /user:Пользователь Пароль", , Истина);
здесь действия с файлом от имени указанного пользователя
ЗапуститьПриложение("NET USE \\папка /delete", , Истина);
---
Передать файл с сервера на клиента.
---
Оказалось все так просто. Надо было всего лишь сохранять на клиенте а не на сервере. Большое спасибо.
---
ЗапуститьПриложение("NET USE \\папка /user:Пользователь Пароль", , Истина);
здесь действия с файлом от имени указанного пользователя
ЗапуститьПриложение("NET USE \\папка /delete", , Истина);
---
Создайте расшаренную папку и в нее сохраняйте свои файлы (на сервере как я понимаю)
Потому что при создании на клиенте - все сохраняется в папку дуступную текущему пользователю...
---
Всем кто отписался, большое спасибо !!!
Доброго дня! Вопрос то в принципе простой....Написан запрос. Проблем в том, что при выборе группы, ничего не выводит. В данном случае ВыбОбъект и Контр, если выбирается по объектно, то все красиво формируется. Но если ВыбОбъект группа то таблица пустая, также если не выбран Контр(в данном случае будет выводится по всем контрагентам)

Подскажите пожалуйста как реализовать хотелки

Запрос:

```1c
    //{{ЗАПРОС(запрос)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Без итогов;
    |

    |ВидРабот = Документ.ВедУлож.НаименованиеРабот;
    |КодРабот = Документ.ВедУлож.НаименованиеРабот.Код;
    |Дата = Документ.ВедУлож.ДатаДок;
    |Субподр = Документ.ВедУлож.Субподрядчик;
    |ТЗОснРаб = Документ.ВедУлож.Тзосн;
    |ТЗМех = Документ.ВедУлож.Тзмех;
    |ЭкспМашМех = Документ.ВедУлож.Экспл;
    |ФОТОснРаб = Документ.ВедУлож.ФОТосн;
    |ФОТМех = Документ.ВедУлож.ФОТмех;
    |Объект = Документ.ВедУлож.Объект;
    |МашМех = Документ.ВедУлож.МашМех;
    |НаклРасх = Документ.ВедУлож.НаклРасх;
    |ПланНак = Документ.ВедУлож.ПланНак;
    |МатРесурс = Документ.ВедУлож.СуммаУложЗаПериод;

    |ВремяЗдСоор = Документ.ВедУлож.Вр;

    |ПрРабвЗимнВр = Документ.ВедУлож.Зимн;

    |НДС20 = Документ.ВедУлож.НДС;
    |ИТОГО3 = Документ.ВедУлож.ИтогоСНДС;

    |Группировка ВидРабот Без Групп;
    |Группировка Субподр;

    |Условие(Объект = ВыбОбъекты);
    |Условие(Субподр = Контр);
```
---
```1c
    |Условие(Объект в ВыбОбъекты);
    |Условие(Субподр в Контр);
```
---
```1c
    |Условие(Объект в ВыбОбъекты);
    |Условие(Субподр в Контр);
```
---
|Условие(Объект в ВыбОбъекты); |Условие(Субподр в Контр); Спасибо, получилось. Ларчик то просто открывался!
Есть необходимость сделать ввод документа ВыпускПродукции на основании документа ПеремещениеТоваров. Через расширение добавить документ-основание пока невозможно, поэтому хочу извратиться и сделать на форме документа ПеремещениеТоваров отдельную кнопку, которая создаст новый документ ВыпускПродукции и передаст в него ссылку на документ-основание для дальнейшей обработки, как если бы это происходило штатным вводом на основании. Подскажите, как это правильно сделать.
---
Многое зависит от модифицируемой конфигурации. Например, в ERP для команд создания на основании используется механизм подключаемых команд БСП, для чего определен отдельный вид команд. При этом платформенный механизм ввода на основании (т.е. настройка его через свойства объекта конфигурации) почти не используется, а список команд формируется специальной экспортной процедурой модуля менеджера объекта-основания.

Но если что-то рекомендовать без привязки к конфигурации, а советы коллег, написанные выше, по каким-либо причинам не подойдут, можно с помощью расширения:
- добавить общую команду: тип параметра - ссылка на документ-основание, режим использования - одиночный, группа - "Командная панель формы.Ввод на основании";
- в обработчике команды открыть форму подчиненного документа, передав в параметрах открытия параметр команды как основание;
- доопределить обработчик заполнения подчиненного документа с учетом того, что в качестве данных заполнения может оказаться ссылка на новый документ-основание.
---
Многое зависит от модифицируемой конфигурации. Например, в ERP для команд создания на основании используется механизм подключаемых команд БСП, для чего определен отдельный вид команд. При этом платформенный механизм ввода на основании (т.е. настройка его через свойства объекта конфигурации) почти не используется, а список команд формируется специальной экспортной процедурой модуля менеджера объекта-основания.

Но если что-то рекомендовать без привязки к конфигурации, а советы коллег, написанные выше, по каким-либо причинам не подойдут, можно с помощью расширения:
- добавить общую команду: тип параметра - ссылка на документ-основание, режим использования - одиночный, группа - "Командная панель формы.Ввод на основании";
- в обработчике команды открыть форму подчиненного документа, передав в параметрах открытия параметр команды как основание;
- доопределить обработчик заполнения подчиненного документа с учетом того, что в качестве данных заполнения может оказаться ссылка на новый документ-основание.
---
Спасибо, так и сделал! Всё отлично работает, только структура подчиненности документов не формируется, но это пустяк.
---
если конфигурация типовая на УФ+БСП, то проще использовать внешнюю обработку с видом: ЗаполнениеОбъекта или СозданиеСвязанныхОбъектов
---
кстати да, создается новый документ Выпуск продукции и в нем кнопка - Заполнить на основании конкретного документа или списка выделенных документов
Так и на обычных формах делали