Всем доброго вечера.
Конфигурация - УТ 11.4
Появилась необычная необходимость создавать ПРИОБРЕТЕНИЕ ТОВАРОВ И УСЛУГ на основе документа РЕАЛИЗАЦИЯ.
Создал назначаемую внешнюю обработку - корректно заполнил сведения о внешней обработке.
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты) Экспорт
СозданныеОбъекты = Новый Массив;
ВыполнитьКомандуНаСервере(ОбъектыНазначения, СозданныеОбъекты);
Для Каждого ПриобретениеСсылка Из СозданныеОбъекты Цикл
ПараметрФормыПриобретение = Новый Структура("Ключ",ПриобретениеСсылка);
ОткрытьФорму("Документ.ПриобретениеТоваровУслуг.ФормаОбъекта", ПараметрФормыПриобретение)
КонецЦикла
КонецПроцедуры // ВыполнитьКоманду()
&НаСервереБезКонтекста
Процедура ВыполнитьКомандуНаСервере(ОбъектыНазначения, СозданныеОбъекты)
Для Каждого СсылкаРеализация Из ОбъектыНазначения Цикл
ДокументОбъектРеализация = СсылкаРеализация.ПолучитьОбъект();
МассивНоменклатуры = ДокументОбъектРеализация.Товары.ВыгрузитьКолонку("Номенклатура");
ДокументОбъектПриобретение = Документы.ПриобретениеТоваровУслуг.СоздатьДокумент();
Для Каждого ЭлементМассиваНоменклатуры Из МассивНОменклатуры Цикл
СтрокаТЧПриобретение = ДокументОбъектПриобретение.Товары.Добавить();
СтрокаТЧПриобретение.Номенклатура = ЭлементМассиваНоменклатуры;
КонецЦикла;
ДокументОбъектПриобретение.Номер = "";
ДокументОбъектПриобретение.ЦенаВключаетНДС = Ложь;
ДокументОбъектПриобретение.ЗакупкаПодДеятельность = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС;
ДокументОбъектПриобретение.ВариантПриемкиТоваров = Перечисления.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным;
ДокументОбъектПриобретение.Валюта = Константы.ВалютаРегламентированногоУчета.Получить();
ДокументОбъектПриобретение.Дата = ТекущаяДата();
ДокументОбъектПриобретение.Партнер = "";
ДокументОбъектПриобретение.Комментарий = "";
ДокументОбъектПриобретение.Проведен = Ложь;
ДокументОбъектПриобретение.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
СтрокиНаУдаление = Новый Массив();
Для Каждого СтрокаТЧ Из ДокументОбъектПриобретение.Товары Цикл
Если ЭтоУслугаНаСервере(СтрокаТЧ.Номенклатура)Тогда
СтрокиНаУдаление.Добавить(СтрокаТЧ.НомерСтроки);
КонецЕсли
КонецЦикла;
Для Каждого ЭлементМассива Из СтрокиНаУдаление Цикл
ДокументОбъектПриобретение.Товары.Удалить(ЭлементМассива-1);
КонецЦикла;
ДокументОбъектПриобретение.Записать();
КонецЦикла
КонецПроцедуры // ВыполнитьКоманду()
&НаСервереБезКонтекста
Функция ЭтоУслугаНаСервере(Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ТипНоменклатуры = &ТипНоменклатуры
| И Номенклатура.Ссылка = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("ТипНоменклатуры", Перечисления.ТипыНоменклатуры.Услуга);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Возврат Истина
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
Показать
В коде вроде ничего особенного.
Документ создается - все необходимые параметры заполняются, в том числе ТЧ.
Но вот при проведении выскакивает ошибка -
"попытка генерации вида запасов с незаполненной организацией"
Предположил, что при создании необходимо заполнять реквизит документа "Организация", но при попытки его заполнить системы говорит, что такого реквизита есть.
Если создать документ приобретения в ручном режиме и потом запросом дернуть все реквизиты, то он есть и заполнен.
Подскажите, как данную ситуацию исправить?
Возможно есть какие то моменты, которые я не учел.
МОжет быть нужно совсем другим путем идти?