arefaste/1C_Forums huggingface dataset:
Добрый день.
Управление производственным предприятием 1.3.139 налог УТ 10.3
Необходимо в форму списка документа добавить серию номенклатуры из табличной части Товары. Серии в новой колонке перечисляются через запятую.
Возможно условие вопроса покажется обсурдным, но всё таки надо как-то добавить данные в новую колонку.
Колонку добавил.
Вывел новый реквизит документа в форму списка (тип.Строка)
Как в реквизит колонки передать список возможных серий табличной части?
---
```1c
    СписокСерий = Товары.ВыгрузитьКолонку("СерияНоменклатуры");
    ИтоговаяСтрока = ";
    Для Каждого СТР ИЗ СписокСерий Цикл
    ИтоговаяСтрока = ИтоговаяСтрока + СокрЛП(СТР) + ", ";

    КонецЦикла;
```

и в конце последний символ на точку меняй.
---
НУ если новый реквизит документа есть, его заполняй при записи документа строкой с сериями номенклатуры через запятую. И показывай в форме списка.
---
Документы уже созданы и очень много и дата запрета редактирования установлена.
---
В чем сложность открыть пользователю период и обработать существующие документы обработкой?
---
Данные разве не могут измениться?
---
Если вы их в обработке менять не будете и никто не наговнокодил так, что при получении объекта у него изменяются значения реквизитов, то чего им меняться вдруг?
---
не наговнокодил в этом плане нет уверенности:)
---
для этого существуют копии БД и все эксперименты сначала производятся на них :)
---
можно так решить (и через расширение тоже)
1.добавляете РегистрСведений, независимый, измерение Документ, ресурс Строка с сериями
2.перехватываете/дополняете событие Записи документа/ов (можно по подписке)
Складывате в строку серии и записываете с ссылкой документа в регистр
3.пишите обработку по первоначальному заполнению регистра
4.в форме списка документов, в динамический список, подсоединяете этот регистр и на форму выводите поле Серии строкой
при этом сами документы не модифицируются, не изменяются, не перепроводятся

все это можно в расширении сделать.
---
У ТС УПП 1.3, расширения в ней не работают от слова совсем.
---
тогда все тоже самое - без Расширения,
результат будет тот-же, задача решена.
---
Как заполнить через запятую?
У меня получается последняя строка таблицы товары. Никак не соображу как накопление в строке сделать.
Процедура ПриЗаписи(Отказ)

ТаблицаТоваров = ЭтотОбъект.Товары;
СтрокаСерии = Неопределено;
Для Каждого Элемент Из ТаблицаТоваров Цикл
 СтрокаСерии = Элемент.СерияНоменклатуры;
КонецЦикла;
ЭтотОбъект.СерияНоменклатуры = СтрокаСерии;

КонецПроцедуры
---
```1c
    СписокСерий = Товары.ВыгрузитьКолонку("СерияНоменклатуры");
    ИтоговаяСтрока = ";
    Для Каждого СТР ИЗ СписокСерий Цикл
    ИтоговаяСтрока = ИтоговаяСтрока + СокрЛП(СТР) + ", ";

    КонецЦикла;
```

и в конце последний символ на точку меняй.
---
Всё завелось. Спасибо!!!
Доброе утро.

В общем, есть СКД, в ней использую набор данных (Набор данных объект).

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

Ну то есть, в вычисляемом поле должно быть что-то вроде такого.

Но как это реализовать?

__МойМодульВызовСервера.МояФункция(Поле, ТаблицаЗначенийПоКоторойНужноРассчитать)

Пробовал агрегатную функцию СКД "ТаблицаЗначений" и "ВычислитьВыражениеСГруппировкойТаблицаЗначений", но они возвращают таблицу значений с одной строкой. А мне нужны все строки.
---
Вычисляемое поле будет высчитываться для каждой строки. Вы уверены, что вам нужно для каждой строки отчета загонять в функцию общего модуля все строки?

В общем случае должно сработать вычисляемое поле, итог по которому рассчитывается по группировке "ОбщийИтог"

http://prntscr.com/tdbz7l

Для частных случаев, можно попробовать МояФункция(КакойтоЗначение, ВычислитьВыражение("ТаблицаЗначений(Поля)", "ОбщийИтог"))
---
ТаблицаЗначений" и "ВычислитьВыражениеСГруппировкойТаблицаЗначений" в контексте какой группировки? Если текущей, то понятное дело, что 1 строка
---
А как сделать в контексте всего набора данных?
---
Вычисляемое поле будет высчитываться для каждой строки. Вы уверены, что вам нужно для каждой строки отчета загонять в функцию общего модуля все строки?

В общем случае должно сработать вычисляемое поле, итог по которому рассчитывается по группировке "ОбщийИтог"

http://prntscr.com/tdbz7l

Для частных случаев, можно попробовать МояФункция(КакойтоЗначение, ВычислитьВыражение("ТаблицаЗначений(Поля)", "ОбщийИтог"))
---
Спасибо.

Да, я уже сам понял что по какому-то неправильному пути пошел и сделал иначе.
---
Вот тут оба варианта
Как запросе илм в СКД сделать так,чтобы 0,1;0,2;03;0,4 и 0,5 округлялись до 0,5 , а 06;0,7;0,8 и 0,9 округлялись до 1?
---
```1c
    ВЫРАЗИТЬ(НужноеЧисло-0.5 КАК ЧИСЛО(15, 0)) +
    ВЫБОР
    КОГДА НужноеЧисло - ВЫРАЗИТЬ(НужноеЧисло-0.5 КАК ЧИСЛО(15, 0)) <= 0.5
    ТОГДА 0.5
    ИНАЧЕ 1
    КОНЕЦ
```

Ну если числа положительные, конечно.
---
```1c
    ВЫРАЗИТЬ(НужноеЧисло-0.5 КАК ЧИСЛО(15, 0)) +
    ВЫБОР
    КОГДА НужноеЧисло - ВЫРАЗИТЬ(НужноеЧисло-0.5 КАК ЧИСЛО(15, 0)) <= 0.5
    ТОГДА 0.5
    ИНАЧЕ 1
    КОНЕЦ
```

Ну если числа положительные, конечно.
---
там может быть число больше 1. Например 55,3 должно быть равно 55,5 . 177,8 должно быть равно 178
---
так и должно получиться:
1. 55.3 - 0.5 = 54.8 через выразить округлится до 55, ( 55.3 - 55 ) = 0.3 <= 0.5, значит по первой ветке условия прибавляем 0.5 получаем 55.5
2. 177.8 - 0.5 - 177.3 -> 177 + (177.8 - 177) = 0.8 по другой ветке условия прибавляем 1 получаем 178
---
Спасибо. То,что нужно
Всем привет!
Вопрос, вероятно глупый, но я никак с ним не разберусь.
Есть внешняя обработка, на ней есть поле выбора файла. И есть кнопка открыть. При нажатии на эту кнопку должен открываться выбранный файл. Файл открывается, все хорошо, но перед открытием файла появляется окно. Как мне сделать так, чтоб оно не появлялось?
---
В обработчике команды пропишите стандартнаяОбработка = Ложь;
---
Код обработки выложите
---
В обработчике команды пропишите стандартнаяОбработка = Ложь;
---
Благодарю, это помогло
Коллеги приветствую.
Везде в примерах используют работу с первым листом:
  СтраницыДокумента = CalcФайл.GetSheets();;
        Лист1 = СтраницыДокумента.GetByIndex(0);

а как узнать общее количество листов в книге?
Не смог найти...
---
Метод CalcФайл.GetSheets() вернет массив всех листов. У массива должен быть метод типа Count()/lenght()(или свойство count/length) или другой похожий по смыслу.

Пример кода из документации:

```1c
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
    if (sheets.length > 1) {
    Logger.log(sheets[1].getName());
    }
```
---
Метод CalcФайл.GetSheets() вернет массив всех листов. У массива должен быть метод типа Count()/lenght()(или свойство count/length) или другой похожий по смыслу.

Пример кода из документации:

```1c
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
    if (sheets.length > 1) {
    Logger.log(sheets[1].getName());
    }
```
---
Спасибо.
Count() подошло.
Всем здравствуйте. Имеет Т 10.3. Имеется реализация от 3 декабря 19 года.
И имеем корректировку этой реализации от 11 марта 20 года. И при пересчете программа считает по крс на 11 марта, хот необходимо на декабрь.
У меня два вопроса: можно ли это сделать простой заменой даты документа корректировки на декабрь тот же день. И если можно, то чем это грозит?
Если нет, то как лучше поступить в данной ситуации?
---
А разобрался. В модуле документа Корректировка поменял везде с СтруктураШапкиДокумента.КурсДокумента на СтруктураШапкиДокумента.ДокументРеализацииСсылка.КурсВзаиморасчетов. И в процедуре ЗаполнитьСвойстваШапки закомментировал КурсВзаиморасчетов = СтруктураКурсаДокумента.Курс;

Как временное решение вполне годное.
---
хот необходимо на декабрь - уверены ? тогда нужно менять код проведения
---
да, именно необходимо чтоб крс был от декабр
---
Пробовал на копии менять дат на декабрь, при запросе о смене курса ответил положительно. Потом обратно на март, на вопрос о смене курса отрицательно отвечаю,крс при проведении все равно меняется
---
без доработки не обойтись
---
каким образом тогда это лучше сделать? в логике пересчета сделать ссылку на реализацию и сказать считать оттуда? или бы Вы как нибудь по другому поступили?
---
А разобрался. В модуле документа Корректировка поменял везде с СтруктураШапкиДокумента.КурсДокумента на СтруктураШапкиДокумента.ДокументРеализацииСсылка.КурсВзаиморасчетов. И в процедуре ЗаполнитьСвойстваШапки закомментировал КурсВзаиморасчетов = СтруктураКурсаДокумента.Курс;

Как временное решение вполне годное.
Добрый день, коллеги.
В типовой БП 3.0 есть формы списков документов (например, в документе "СчетНаОплатуПокупателю"): ФормаСписка и ФормаВыбора. В динамических списках этих форм есть реквизит "Ссылка" (видимый) с галкой "Использовать всегда". Если открыть любую из этих форм в режиме предприятия, то колонка этого реквизита не видна (даже есть вернуть все настройки к дефолтным). А если нажать на кнопку "Изменить форму" - то этот реквизит в списке есть, но галка видимости снята.
А теперь вопрос - как это повторить в своей форме, где используется динамический список этого документа? Сейчас колонка реквизита "Ссылка" по умолчанию видна. Ткните, пожалуйста, где это делается.
---
Там в свойствах поля есть Видимость и Пользовательская видимость. Если Видимость выставить в Ложь, то даже при "Изменить форму" реквизит не увидишь. Пользовательская видимость регулирует то, что тебе нужно.
---
Там в свойствах поля есть Видимость и Пользовательская видимость. Если Видимость выставить в Ложь, то даже при "Изменить форму" реквизит не увидишь. Пользовательская видимость регулирует то, что тебе нужно.
---
Точно, не увидел, что в пользовательской видимости верхняя галка снята. Спасибо.
Надо получить максимально читаемый текст запроса к итогам с отбором без ущерба производительности.
Прошу ткнуть в гайд по написанию запросов.

```1c
    ВЫБРАТЬ
    | КлючиАналитикиУчетаПоПартнерам.Ссылка КАК Ссылка
    |ПОМЕСТИТЬ втАналитикаПартнеры
    |ИЗ
    | Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиАналитикиУчетаПоПартнерам
    |ГДЕ
    | КлючиАналитикиУчетаПоПартнерам.Партнер = &Партнер
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот КАК СуммаВыручкиОборот
    |ИЗ
    | РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
    | ,
    | ,
    | Период,
    | АналитикаУчетаПоПартнерам В
    | (ВЫБРАТЬ
    | втАналитикаПартнеры.Ссылка
    | ИЗ
    | втАналитикаПартнеры)) КАК ВыручкаИСебестоимостьПродажОбороты
```
---
да, правильно советуют в сообщении №2: Е.Ю. Хрусталёва "Язык запросов 1С Предприятия 8". А в твоём запросе можно обойтись и без первого пакета, сразу в параметрах виртуальной таблицы написать:
АналитикаУчетаПоПартнерам.Партнер = &Партнер
---
Е.Ю. Хрусталёва "Язык запросов 1С Предприятия 8"
---
да, правильно советуют в сообщении №2: Е.Ю. Хрусталёва "Язык запросов 1С Предприятия 8". А в твоём запросе можно обойтись и без первого пакета, сразу в параметрах виртуальной таблицы написать:
АналитикаУчетаПоПартнерам.Партнер = &Партнер
---
Как по мне рекомендация спорная. В типовых помоему используют вариант, как предложил топикстартер. По сути вы говорите: соединись левым соединением со всем справочником партнеры и оставь все записи где Партнер = &Партнер . Оптимизатор MS SQL это схавает скорее всего, но такое лучше смотреть в профайлере
---
По читаемости компактнее, на файловой БД выполняется за аналогичное время.

А для серьёзной беседы профайлер для постгри еще надо раздобыть.

Беспокоило, нельзя ли меняя текст запроса в данном случае помочь оптимизатору с выбором плана запроса для большинства вариантов установки (без особой наркомании).

В "Проф. разработке" ответа не нашел. Книгу Е.Ю.Хрусталёвой придется перечитать.
Коллеги, здравствуйте.

Сделал отчет на СКД с собственной иерархией через внешние источники данных (на примере статьи https://infostart.ru/public/242824/)

не работает отбор в иерархии. Ищу. Везде в интернете примеры с запросом, где накладывают отбор на родителя, а вот примеров с внешним источником данных - не могу найти. Приложил скрины, как я сделал.

выдает ошибку "использование полей из несвязанного набора не допустимо". Пробовал разные варианты - не помогает. Прошу помочь.

Заранее спасибо всем откликнувшимся
---
попробуйте переименовать поля набора для проверки иерархии (не забыв обновить связи и параметры проверки). Возможно ошибка из-за того, что поля в основном наборе и в наборе для проверки совпадают.
---
может в СКД на закладке "Связи наборов данных" забыли связи указать
---
в описаниях связи с основным набором не делают, указывают на вкладке наборов данных в колонке "Проверка иерархии". так и сделал. Выше на скринах видно.

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

Столкнулся с интересной ситуацией:
Есть внешняя обработка, подключенная через БСП внешние отчёты и обработки. Она должна отрабатывать в качестве регламентного задания по расписанию. И в одной базе нормально отрабатывает. А в другой, с точно такой же конфигурацией, вываливается с ошибкой "Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (WinHttp.WinHttpRequest): URL-адрес не использует поддерживаемый протокол". Эта же ошибка воспроизводится и в файловой копии базы. При том, если запускать в фоновом задании через Консоль Заданий, то всё отрабатывает нормально. В чём же может быть дело?
---
Короче говоря, нашёл решение, мало ли - поможет кому.
Адрес сайта через "https://" хранился в ХранилищеОбщихНастроек. Непонятно почему, хотя в обработке был прописан пользователь из под которого выполнять обработку, параметры из ХранилищаОбщихНастроек не подгружались. Почему я так и не понял, решил методом тыка. В КонсолиЗаданий у соответствующего регламентного задания указал пользователя(он был пустым), тогда параметры начали подгружаться.
---
Короче говоря, нашёл решение, мало ли - поможет кому.
Адрес сайта через "https://" хранился в ХранилищеОбщихНастроек. Непонятно почему, хотя в обработке был прописан пользователь из под которого выполнять обработку, параметры из ХранилищаОбщихНастроек не подгружались. Почему я так и не понял, решил методом тыка. В КонсолиЗаданий у соответствующего регламентного задания указал пользователя(он был пустым), тогда параметры начали подгружаться.
---
Во внешней обработке к сайту обращаетесь через "http:// ?
---
"https://", при "http://" вылетает с ошибкой
Добрый день, создаю внешнюю обработку которая создает TXT файлы, с периодичностью 1 файл в сутки, нужно что бы в каждом созданном файле, в наименовании прибавлялось +1. не пойму как это можно реализовать ?
---
А вы уверены, что нужно именно так? Похоже на реестр для банков. Если так, то там порядковый номер меняется только в пределах дня (если в одном дне несколько реестров). Если так и у вас только один файл каждый день, то в номере жестко прописать 001.
Если может быть несколько файлов в одном дне, то разбирать имена файлов, которые уже есть, определять максимальный номер и прибавлять. Структура имени же всегда одинаковая. Берем все файлы по маске с нужной датой и по определенной позиции имени выделяем номер.
Если есть возможность изменить базу для хранения номера реестра, то можно в базе хранить максимальный номер по датам и использовать его.
---
Можно использовать функцию ДеньГода(ТекущаяДата())
---
А вы уверены, что нужно именно так? Похоже на реестр для банков. Если так, то там порядковый номер меняется только в пределах дня (если в одном дне несколько реестров). Если так и у вас только один файл каждый день, то в номере жестко прописать 001.
Если может быть несколько файлов в одном дне, то разбирать имена файлов, которые уже есть, определять максимальный номер и прибавлять. Структура имени же всегда одинаковая. Берем все файлы по маске с нужной датой и по определенной позиции имени выделяем номер.
Если есть возможность изменить базу для хранения номера реестра, то можно в базе хранить максимальный номер по датам и использовать его.
---
ли может быть несколько файлов в одном дне, то разбирать имена файлов, которые уже есть, определять максимальный номер и прибавлять. Структура имени же всегда одинаковая. Берем все файлы по маске с нужной датой и по определенной позиции имени выделяем номер.
Если есть возможность изменить базу для хранения номера реестра, то можно в базе хранить максимальный номер по датам и использовать его.
да это реестр для банка, реестр будет только 1 в пределах дня
---
Ну тогда не нужно заморачиваться и в имени файла жестко забейте "001"
---
спасибо
---
Хотя, лучше у банка уточнить, вдруг у вас немного по другому. я вам совет дал исходя из своей ситуации. Возможно у банка, с которым вы работаете, другие требования. Но я сильно сомневаюсь, скорее всего всё будет так, как я предположил
---
Сбербанк
---
Как вариант. Если сохранение идет в одну папку и файлы не удаляются, то можно посмотреть список файлов в папке и определить последний номер в текущей папке (при условие что нет возможности хранить номер в базе).
Добрый день подскажите как сменить вид номенклатуры у действующего товара по которому уже есть движения
есть позиция сумка например взяли и сделали на нее характеристики по глупости а сейчас хотим сделать чтобы их не было как можно это сделать
если просто изменить вид номенклатуры то в движениях то остается
---
Тогда поиск ссылок на объект и через групповое изменение передобавить номенклатуру в документы. Но сначала, в карточке товара изменить вид, без характеристик
---
Ну найти . Берешь к примеру документы чек. Отбор ставишь Товары.Номенклатура - Конкретная номенклатура, плюс период нужно выбрать. Он найдет чеки, Закрываешь. После это ты заходишь товары.номенклатура указываешь на какую нужно заменить и поставь обмен данными истина
---
Лучше, конечно, все перепровести после замены. Если это нереально, я бы просто поменял вид. Скорее всего все нормально будет работать, но лучше на копии сначала попробовать.
---
А при чем движения тут? Или вы ее уже продавали в разрезе характеристик?(красная, синяя). Измените у нее вид в карточке товара
---
да уже есть продажи
---
В разрезе характеристики продавали? Именно указывали красная или синяя?
---
да в разрезе характеристик
---
Тогда поиск ссылок на объект и через групповое изменение передобавить номенклатуру в документы. Но сначала, в карточке товара изменить вид, без характеристик
---
хм а это как через групповое пере добавить можно
так по одной штуке?

// Доступные переменные:
// Объект - обрабатываемый объект
для каждого стр из Объект.Товары цикл
Если стр.Номенклатура =справочники.номенклатура.найтипокоду("ЦУ000000183") тогда
стр.Номенклатура = справочники.номенклатура.найтипокоду("ЦУ000000183");
стр.Характеристика =справочники.характеристикиноменклатуры.пустаяссылка();
Конецесли;
конеццикла;
---
Ну найти . Берешь к примеру документы чек. Отбор ставишь Товары.Номенклатура - Конкретная номенклатура, плюс период нужно выбрать. Он найдет чеки, Закрываешь. После это ты заходишь товары.номенклатура указываешь на какую нужно заменить и поставь обмен данными истина
---
если честно, я чтото всегда думал что изменит всю тч а не определенную позицию)
---
можно и всю, ну это долго. Получилось?
---
Да получается , только блин это ужасно долго, позиция не одна а около 500(
---
500 сумок так продали?
---
ну да прошлый админ им не сказал что неправильно и они били все с характеристиками
Здравствуйте форумчане. Возник вопрос по СКД. Делаю отчет с таблицей. В колонках надо проставить периодичность и реквизит сценарий. При создании этих группировок СКД выводит три колонки
1. Сумма по периоду
2. Факт
3. План

Как убрать сумму по периоду, мне нужны только сценарии в разрезе периодов, итоги по периодам не нужны, а отключить их никак не получается
---
Уже разобрался. Для периода надо установить настройку группировки как на скриншоте. А к сценарию добавить период в перечне выбранных полей
---
Уже разобрался. Для периода надо установить настройку группировки как на скриншоте. А к сценарию добавить период в перечне выбранных полей
Собственно говоря, очень простой отчет.
Но почему, то, что формирует СКД, отличается от того, что попадает в Эксель?
БП, используется счет 76.09
---
блин, все просто!

```1c
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();;

    Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка);
    ВнешниеПараметры = Новый Структура;

    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);

    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(таб1);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
```
---
Поняла, надо настройки с формы передать в программно формируемый СКД
---
только как? ;)
---
например так, в модуле отчета

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    Параметр = Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("КонецПериода"));
    Граница = Новый Граница(КонецДня(Параметр.Значение), ВидГраницы.Включая);
    Параметр.Значение = Граница;
    Параметр.Использование = Истина;
    КонецПроцедуры
```
---
Пример:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    Настройки = КомпоновщикНастроек.Настройки;
    ЭД = Настройки.ПараметрыДанных.Элементы.Найти("ИмяПараметраСКД1");
    ЭД.Значение = ЗначениеПараметра1;
    ЭД.Использование = Истина;
    КонецПроцедуры
```
---
но как? формы у СКД как таковой нету...
она ж интерактивно рисуется.
У меня параметры есть которые из СКД
---
блин, все просто!

```1c
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();;

    Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка);
    ВнешниеПараметры = Новый Структура;

    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);

    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(таб1);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
```