Доброе утро.
Ситуация такая:
есть документ
у документа есть макет схемы компановки, в которой запрос и настройки.
в форме документа кнопка "заполнить", по ней открывается произвольная форма документа, в которой реквизиты: СсылкаНаДокумент - ДокументСсылка.УстановкаКоэффициентовРасходаМатериалов, НастройкиЗаполнения - КомпоновщикНастроекКомпоновкиДанных, АдресМакета - строка, Адрес - строка.
На формы выведены "НастройкиЗаполнения.Настройки.Отбор" и кнопка

В форме заполнения при создании на сервере:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    МакетСКД=Документы.УстановкаКоэффициентовРасходаМатериалов.ПолучитьМакет("МакетСКД");
    АдресМакета = ПоместитьВоВременноеХранилище(МакетСКД);
    НастройкиЗаполнения.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресМакета));
    НастройкиЗаполнения.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию);
    СсылкаНаДокумент = Параметры.СсылкаНаДокумент;

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

в обработчике кнопки:

```1c
    &НаКлиенте
    Процедура ПринятьОтбор(Команда)
    ПринятьОтборНаСервере();

    КонецПроцедуры
    &НаСервере
    Процедура ПринятьОтборНаСервере()
    МакетСКД = ПолучитьИзВременногоХранилища(АдресМакета);
    Настройки = НастройкиЗаполнения.Настройки;
    Настройки.ПараметрыДанных.Элементы[1].Значение = СсылкаНаДокумент;
    Настройки.ПараметрыДанных.Элементы[0].Значение = СсылкаНаДокумент.Дата;
    КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных =КомпоновщикМакетаКомпоновкиДанных.Выполнить(МакетСКД,Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных);
    СтрокиТаблицы = Новый ТаблицаЗначений;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(СтрокиТаблицы);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    Адрес = ПоместитьВоВременноеХранилище(СтрокиТаблицы);
    КонецПроцедуры
```

В толстом клиенте все ОК, в тонком вылетает ошибка см.картинку

ХЕЛП!!!
---
Удалось повторить ошибку у себя на аналогичной процедуре.

Было
```1c
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКД, УникальныйИдентификатор);
```

После того, как переделал на
```1c
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКД);
```

получил ошибку.

Так что.
---
Релиз платформы, ну и код видно
---
Параметры запуска: тонкий клиент
---
Пробегаясь отладчиком понял, что ошибка происходит, когда серверная процедура отработала полностью и корректно (результат получен в ТЗ и помещен во временное хранилище). Т.е. в момент возврата с сервера на клиент.
Что не так я делаю на сервере?
---
monkbest, первое что приходит в голову это передаете на тонкий клиент, то что нельзя передавать. Тут уже справку откройте и проверьте вызовы на доступность в тонком клиенте.
---
Xershi, на это проверил уже вроде сто раз
---
monkbest, отладчиком проверяете в файловом варианте? Потому что в серверном пока на клиент не вернется, ошибку не выдаст.

```1c
    Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресМакета)
```

Ошибка не с вот этим связана случайно?

И самое главное - зачем выносить отборы табчасти на отдельную произвольную форму?
---
Follower, это не отборы таб части это её заполнение, заполнение результатами работы схемы компановки данных. В ней у меня запрос к регистру сведений. Не хотел, городить это в той же форме. Честно говоря я пробовал все это реализовать в одной форме - результат тот же.
---
Follower, я толкьо в файловом варианте пока и работаю и ошибка именно на выходе из процедуры. Все операторы на сервере отрабатывают удачно, результат корректный.
---
monkbest, а вот что вы делаете со "СтрокамиТаблицы"? В коде в (1) обработки результата не видно. Если передаете на клиент, то это не очень хорошо - на клиенте нет ТаблицЗначений. Может, в этом дело?
---
Follower, да нормально я с ними все делаю :) на клиенте адрес временного хранилища передается в метод формы закрыть. Форма открыта модально и адрес уходит на форму документа открывшую эту, там вызывается серверная процедура, которая читает из хранилища и заполняет таб часть. Это все работает и вообще я для эксперимента все закоментил в плане передачи и обработки ТЗ, ошибка остается.

Вот такой код тоже не работает:

```1c
    &НаСервере
    Процедура ПринятьОтборНаСервере()
    МакетСКД = ПолучитьИзВременногоХранилища(АдресМакета);
    Настройки = НастройкиЗаполнения.Настройки;
    Настройки.ПараметрыДанных.Элементы[1].Значение = СсылкаНаДокумент;
    Настройки.ПараметрыДанных.Элементы[0].Значение = СсылкаНаДокумент.Дата;
    КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных =КомпоновщикМакетаКомпоновкиДанных.Выполнить(МакетСКД,МакетСКД.НастройкиПоУмолчанию ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных);
    СтрокиТаблицы = Новый ТаблицаЗначений;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(СтрокиТаблицы);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    //Адрес = ПоместитьВоВременноеХранилище(СтрокиТаблицы);
    КонецПроцедуры

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    МакетСКД=Документы.УстановкаКоэффициентовРасходаМатериалов.ПолучитьМакет("МакетСКД");
    АдресМакета = ПоместитьВоВременноеХранилище(МакетСКД);
    НастройкиЗаполнения.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресМакета));
    НастройкиЗаполнения.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию);
    СсылкаНаДокумент = Параметры.СсылкаНаДокумент;

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

    &НаКлиенте
    Процедура ПринятьОтбор(Команда)
    ПринятьОтборНаСервере();
    Закрыть();//(Адрес);
    КонецПроцедуры
```
---
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=586423#586423

суть: попробовать

```1c
    Адрес = ПоместитьВоВременноеХранилище(СтрокиТаблицы, УНикальныйИдентификатор);
```

вместо

```1c
    Адрес = ПоместитьВоВременноеХранилище(СтрокиТаблицы);
```
---
ditp, точно мимо

вторую строку меняю вот так

```1c
    Настройки = МакетСКД.НастройкиПоУмолчанию;//НастройкиЗаполнения.Настройки;
```

т.е. беру не те настройки, что пользователь задал на форме в компановщике настроек, то отрабатывает на ура. Но задача состоит именно в том, чтобы пользователь мог задать любой отбор
---
monkbest, я пишу не о

```1c
    Настройки = МакетСКД.НастройкиПоУмолчанию;//НастройкиЗаполнения.Настройки;
```

а о последней строчке процедуры ПринятьОтборНаСервере().
В

```1c
    Адрес = ПоместитьВоВременноеХранилище(СтрокиТаблицы);
```

добавить вторым параметром УникальныйИдентификатор:

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

```1c
    Адрес = ПоместитьВоВременноеХранилище(СтрокиТаблицы);
```

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

Было
```1c
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКД, УникальныйИдентификатор);
```

После того, как переделал на
```1c
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКД);
```

получил ошибку.

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

Вопрос-то с ошибкой я закрыл )
---
Я(16) ditp, сорри я криво читаю с первого раза. Помогло)!!!!!!!!!!!!!!!!!!!!!!!!!
---
На самом то деле, достаточно не извращаться с адресами и сохранением макетов, а в процедуре ПринятьОтборНаСервере() вместо
```1c
    МакетСКД = ПолучитьИзВременногоХранилища(АдресМакета);
```

тупо сделать
```1c
    МакетСКД=Документы.УстановкаКоэффициентовРасходаМатериалов.ПолучитьМакет("МакетСКД");
```

Результат не изменится, и реквизит формы сэкономим.
---
Резюме:

УникальныйИдентификатор надо было указать при сохранении макета СКД во временное хранилище. При сохранении результатов (ТЗ) его указывать конечно не надо.

Спасибо ditp
---
URLСхемы = ПоместитьВоВременноеХранилище(скдДанные, Новый УникальныйИдентификатор());
  ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы);

  КД = Вычислить("кд"+ИмяОтбора);
  КД.Инициализировать(ИсточникНастроек);
  КД.ЗагрузитьНастройки(скдДанные.НастройкиПоУмолчанию);

тут важно URLСхемы = ПоместитьВоВременноеХранилище(скдДанные, Новый УникальныйИдентификатор()); передать свой уид адреса
---
Еще по теме sozdaniye-istochnika-dostupnykh-nastroyek
 Разработчики платформы рекомендуют для управляемых форм применять такой способ – поместить схему во временное хранилище и инициализировать источник доступных настроек полученным адресом:

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

Для решения проблемы в модуле отчета добавляем следующие процедуры:

```1c
    Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, НастройкиОтчета) Экспорт
    НастройкиОтчета.События.ПриСозданииНаСервере = Истина;
    КонецПроцедуры

    Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

    //определяем, что отчет запущен через Файл-Открыть
    Если Прав(ЭтотОбъект.ИспользуемоеИмяФайла,3) = "erf" Тогда
    Форма.НастройкиОтчета.Внешний = Истина;
    КонецЕсли;

    КонецПроцедуры
```
---
Столкнулся с подобной ошибкой. В моем случае проблема была в неправильной функции СведенияОВнешнейОбработке(). Подробнее ТУТ.
---
Спасибо