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

```1c
    ОбОперация = Документы.ОперацияБух.СоздатьДокумент();

    ОбОперация.Дата = КонецДня(КонецПериода);
    ОбОперация.Организация = Организация;
    Проводки = ОбОперация.Движения.Хозрасчетный;
    Проводка = проводки.Добавить();
    Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.08.1");
    Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("26");
    Проводка.Сумма = БазоваяСумма;
    Проводка.СуммаНУДт = БазоваяСуммаНУ;
    Проводка.СуммаНУКт = БазоваяСуммаНУ;

    Проводка.СуммаВРДт = БазоваяСумма- БазоваяСуммаНУ;
    Проводка.СуммаВРКт = БазоваяСумма- БазоваяСуммаНУ;

    Проводка.Содержание = "Закрытие счета 26***";
    Проводка.Организация = Организация;
    Проводка.Период = КонецДня(КонецПериода);

    ОбОперация.СуммаОперации = проводки.Итог("Сумма");
    ОбОперация.Содержание = "Закрытие счетов 25,26";
```

Но в УФ это не проходит, поскольку там что-то типо табличной части, как в 8.3 в УФ реализовать похожий механизм?
---
Вот кусок рабочий кусок кода:

```1c
    Функция ВвестиОперацию() Экспорт

    Если ЗначениеЗаполнено(ОперацияПересортица) и Лев(" + ОперацияПересортица, 18) <> "<Объект не найден>" Тогда
    Попытка
    оп = ОперацияПересортица.ПолучитьОбъект();
    оп.Движения.Хозрасчетный.Очистить();
    Исключение
    Сообщить("Не удалось изменить " + ОперацияПересортица);
    Возврат ";
    КонецПопытки;
    Иначе
    оп = Документы.ОперацияБух.СоздатьДокумент();
    КонецЕсли;
    оп.Дата = КонецДня(НаДату) - 1;
    оп.Организация = Организация;
    оп.Ответственный = Пользователи.ТекущийПользователь();
    оп.Содержание = "#Пересортица товаров на дату " + Формат(НаДату, "ДФ=dd.MM.yyyy");
    оп.Комментарий = "#Пересортица " + НоменклатураДляПередачи + " в " + Номенклатура;
    //оп.Движения.Хозрасчетный.Записывать = Истина;
    оп.Записать(РежимЗаписиДокумента.Запись);
    Для Каждого стр Из ОстаткиПересортицы Цикл

    НовПров = оп.Движения.Хозрасчетный.Добавить();
    НовПров.Активность = Истина;
    НовПров.Регистратор = оп.Ссылка;
    НовПров.Период = оп.Дата;
    НовПров.Организация = Организация;
    НовПров.НеКорректироватьСтоимостьАвтоматически = Истина;

    НовПров.СчетКт = СчетУчетаИсточник;
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетКт, НовПров.СубконтоКт, "Номенклатура", НоменклатураДляПередачи);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетКт, НовПров.СубконтоКт, "Склады", СкладИсточник);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетКт, НовПров.СубконтоКт, "Партии", стр.ДокументПартия);

    НовПров.СчетДт = СчетУчетаПриемник;
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетДт, НовПров.СубконтоДт, "Номенклатура", Номенклатура);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетДт, НовПров.СубконтоДт, "Склады", СкладПриемник);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетДт, НовПров.СубконтоДт, "Партии", стр.ДокументПартия);
    НовПров.Сумма = стр.Сумма;
    НовПров.КоличествоДт = стр.Количество;
    НовПров.КоличествоКт = стр.Количество;

    НовПров.СуммаНУДт = стр.СуммаНУ;
    НовПров.СуммаНУКт = стр.СуммаНУ;

    НовПров.СуммаПРДт = стр.СуммаПР;
    НовПров.СуммаПРКт = стр.СуммаПР;

    НовПров.СуммаВРДт = стр.СуммаВР;
    НовПров.СуммаВРКт = стр.СуммаВР;

    оп.СуммаОперации = оп.СуммаОперации + НовПров.Сумма;
    НовПров.Содержание = "Списан товар на пересортицу";

    КонецЦикла;
    оп.Движения.Хозрасчетный.Записывать = Истина;
    оп.Записать(РежимЗаписиДокумента.Запись,);
    Возврат оп.Ссылка;
    КонецФункции
```
---
добавлю вознаграждение за ответ в теме
---
Но в УФ это не проходит,А при чем тут OФ/УФ если речь о коде, который к форме не имеет ни малейшего отношения? И который должен выполняться на сервере. поскольку тамТам = это ГДЕ? что-то типо табличной части, как в 8.3 в УФ реализовать похожий механизм?Он один и тот же начиная с 8.0 и в 8.3 в этом механизме ничего не поменялось. Просто его надо делать на сервере, о чем я уже и намекнул.
---
sssss_aaaaa_2011, этот код я выполнял на сервере...
и к сожалению в 8.2 и 8.3 отличается структура...
---
WhiteShadow, какая структура? Какая структура зависит от версии платформы? Или таки от версии конфигурации?
И что сказал сервер? Или это надо угадать?
---
sssss_aaaaa_2011, сервер ничего не сказал, он выполнил код без ошибок, создался документ Операция в ручную, котором пустая табличная часть...
---
WhiteShadow, и при чем тут тогда 8.3 и УФ и все остальное? Без кода заполнения табличной части эта самая часть не заполнится в любой конфе и на любой платформе.
---
sssss_aaaaa_2011, этот код взят с рабочей обработки на БП 2.0, на УФ я пробую сделать похожее но на БП3.0. как и написал выше документ создается но пустой. не пойму в чем Вы меня пытаетесь меня убедить? Для начала возьмите код и проверьте как оно работает на 8.2 и 8.3 потом скажете....
(7) Rain88, все верно можно, но к сожалению отладчик не работает на рабочем компе, а домой тащить этот вопрос не хотелось бы... но похду придется....
---
WhiteShadow, у кого проблемы? У меня? И вы представили код, который можно запустить на любой конфигурации? С чего это я должен проверять у себя чей-то непонятный кусок кода?
---
sssss_aaaaa_2011, не должен, но и не надо в теме пустой базар разводить... я не обращался лично к Вам, а задал вопрос, на который другие люди смогли дать ответ, от Вас же исходит только негатив как будто без Вас вопрос не решится, а вам ну очень не хочется его решать...
---
Ну можно ведь пройтись отладчиком и посмотреть, какая часть кода работает неправильно.
---
Табличные части операции не содержат движений - в них определяется состав регистров и доп. параметров операции. Проводки в операции присутствуют всегда (первая закладка), даже если их в операции не будет. А вот закладки с другими регистрами появятся, если будут добавлены в соответствующую ТЧ...

ОФФТОП закрытие 26 счета на 90.08 делается программой в закрытии месяца просто замечательно - включаем Директ-костинг и всё)))))
---
Alex_E, это кусок кода, нужен свой механизм закрытия 20 и 25 счета, 26 это как довесок... все зарыто в распределении себестоимости...
---
WhiteShadow, Про свои механизм ы расчета себестоимости можно было бы поговорить, потому как ОЧЕНЬ много вариантов могут быть настроены в учетной политике (проверено на практике - часто все настроенные закрытия затратных счетов реализуются в типовой))))))
---
Вот кусок рабочий кусок кода:

```1c
    Функция ВвестиОперацию() Экспорт

    Если ЗначениеЗаполнено(ОперацияПересортица) и Лев(" + ОперацияПересортица, 18) <> "<Объект не найден>" Тогда
    Попытка
    оп = ОперацияПересортица.ПолучитьОбъект();
    оп.Движения.Хозрасчетный.Очистить();
    Исключение
    Сообщить("Не удалось изменить " + ОперацияПересортица);
    Возврат ";
    КонецПопытки;
    Иначе
    оп = Документы.ОперацияБух.СоздатьДокумент();
    КонецЕсли;
    оп.Дата = КонецДня(НаДату) - 1;
    оп.Организация = Организация;
    оп.Ответственный = Пользователи.ТекущийПользователь();
    оп.Содержание = "#Пересортица товаров на дату " + Формат(НаДату, "ДФ=dd.MM.yyyy");
    оп.Комментарий = "#Пересортица " + НоменклатураДляПередачи + " в " + Номенклатура;
    //оп.Движения.Хозрасчетный.Записывать = Истина;
    оп.Записать(РежимЗаписиДокумента.Запись);
    Для Каждого стр Из ОстаткиПересортицы Цикл

    НовПров = оп.Движения.Хозрасчетный.Добавить();
    НовПров.Активность = Истина;
    НовПров.Регистратор = оп.Ссылка;
    НовПров.Период = оп.Дата;
    НовПров.Организация = Организация;
    НовПров.НеКорректироватьСтоимостьАвтоматически = Истина;

    НовПров.СчетКт = СчетУчетаИсточник;
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетКт, НовПров.СубконтоКт, "Номенклатура", НоменклатураДляПередачи);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетКт, НовПров.СубконтоКт, "Склады", СкладИсточник);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетКт, НовПров.СубконтоКт, "Партии", стр.ДокументПартия);

    НовПров.СчетДт = СчетУчетаПриемник;
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетДт, НовПров.СубконтоДт, "Номенклатура", Номенклатура);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетДт, НовПров.СубконтоДт, "Склады", СкладПриемник);
    БухгалтерскийУчет.УстановитьСубконто(НовПров.СчетДт, НовПров.СубконтоДт, "Партии", стр.ДокументПартия);
    НовПров.Сумма = стр.Сумма;
    НовПров.КоличествоДт = стр.Количество;
    НовПров.КоличествоКт = стр.Количество;

    НовПров.СуммаНУДт = стр.СуммаНУ;
    НовПров.СуммаНУКт = стр.СуммаНУ;

    НовПров.СуммаПРДт = стр.СуммаПР;
    НовПров.СуммаПРКт = стр.СуммаПР;

    НовПров.СуммаВРДт = стр.СуммаВР;
    НовПров.СуммаВРКт = стр.СуммаВР;

    оп.СуммаОперации = оп.СуммаОперации + НовПров.Сумма;
    НовПров.Содержание = "Списан товар на пересортицу";

    КонецЦикла;
    оп.Движения.Хозрасчетный.Записывать = Истина;
    оп.Записать(РежимЗаписиДокумента.Запись,);
    Возврат оп.Ссылка;
    КонецФункции
```
---
Alex_E, спасибо за помощь. Ваш код помог.
все дело в
    оп.Движения.Хозрасчетный.Записывать = Истина;
    оп.Записать(РежимЗаписиДокумента.Запись,);
---
WhiteShadow, Пожалуйста!