Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Программное создание документа ОперацияБух и его движений , Бухгалтерия для Украины 2.0.8.2          
sanytch Подменю пользователя
сообщение 06.06.18, 11:06
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток! обращаюсь за помощью к знающим специалистам. Переписываю обработку импорта операций. На редакции 1.2 все работало а вот с управляемыми формами не все так гладко. ближе к теме: требуется создать "Операцию, введеную вручную" (документ ОперацияБух). в редакции 1.2 код выглядел так:
НовДок=Документы.ОперацияБух.СоздатьДокумент();
НовДок.Дата=ТекСтрока.ДатаОперации;
НовДок.Номер=пНомерДокумента;
НовДок.Организация=Организация;
НовДок.Ответственный=глЗначениеПеременной("глТекущийПользователь");
НовСтрока=НовДок.Движения.Хозрасчетный.Добавить();
НовСтрока.Активность=Истина;
//заполняю строки
Если  НовДок.Движения.Хозрасчетный.Количество()>0 Тогда
    НовДок.СуммаОперации=НовДок.Движения.Хозрасчетный.Итог("Сумма");
    НовДок.Содержание = "Ручная операция по начислению процентов и пени";
    НовДок.Записать(РежимЗаписиДокумента.Запись);
    Сообщить("Создан документ " + НовДок);
    ТекСтрока.Документ=НовДок.Ссылка;                     
КонецЕсли;

в итоге создавался документ С движениями по Хозрасчетному:

а вот в редакции 2.0 документ хоть и видит обе проводки (итог по сумме же считает) но движений нет:

пробовал так:
ОпБух=Документы.ОперацияБух.СоздатьДокумент();
ОпБух.Дата=КонецДня(КонПериода);
ОпБух.Организация=Организация;
ОпБух.СпособЗаполнения="Вручную";
СтрокаДвижения=ОпБух.Движения.Хозрасчетный.Добавить();
//заполняю свою строку
ОпБух.Записать(РежимЗаписиДокумента.Запись);

и так:
НовДок=Документы.ОперацияБух.СоздатьДокумент();    
НовДок.Дата=ТекСтрока.ДатаОперации;
НовДок.Номер=пНомерДокумента;
НовДок.Организация=Объект.Организация;
НовДок.Ответственный=ПараметрыСеанса.ТекущийПользователь;
НовДок.Записать();
ДокОперацияСсылка = НовДок.Ссылка;
// 1.1 Ручная операция по начислению процентов ДТ373-КТ732
// движения по хозрасчетному
РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка;
НовСтрока=РегХозрасчетный.Добавить();
НовСтрока.Регистратор = ДокОперацияСсылка;
//далее заполняю из структуры данные в НовСтрока

затем ни
    РегХозрасчетный.Записать();
ни
НовДок.Записать()
не помогают. 09000000.gif
Подскажите как правильно программно сформировать эти движения? help.gif why.gif

takefive Подменю пользователя
сообщение 07.06.18, 8:50
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 60
Из: Днепропетровск
Спасибо сказали: 22 раз
Рейтинг: 23.2

sanytch @ Вчера, 12:06 * ,
Есть подозрение, что существует еще одна таб.часть с перечислением регистров. Для чего кнопка Выбор регистров на форме? Код вначале вполне работоспособный. Только комментарий в коде должен быть выше на 2 строки


Signature
без свинга нет музыки...

Володька Подменю пользователя
сообщение 11.06.18, 8:05
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 166
Спасибо сказали: 8 раз
Рейтинг: 0

            ДокОперация = Документы.ОперацияБух.СоздатьДокумент();
        ДокОперация.Дата = ДатаДокумента;
        ДокОперация.Организация = Организация;
        ДокОперация.Ответственный = ПараметрыСеанса.ТекущийПользователь;
        ДокОперация.Содержание = "Содержание";
        ДокОперация.Комментарий = "Комментарий";
        ДокОперация.Записать();

        ДокОперацияСсылка = ДокОперация.Ссылка;
        
                // Добавляем в хозрастчет.
        РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка;
        
                // Если нужен другой регистр
        РегНакопления = РегистрыНакопления.ДРУГОЙ_РЕГИСТР.СоздатьНаборЗаписей();
        РегНакопления.Отбор.Регистратор.Значение = ДокОперацияСсылка;
        
        
        
        Для Каждого Строка из Объект.ТАБЛИЧНАЯ_ЧАСТЬ_К_ ПРИМЕРУ Цикл
        
            РегЗапись = РегХозрасчетный.Добавить();
            РегЗапись.Период = ДатаДокумента;
            РегЗапись.Регистратор = ДокОперацияСсылка;
            РегЗапись.Организация = Организация;
            РегЗапись.Содержание  = Строка.Назначение;
            
            РегЗапись.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("СЧЕТ");        
            РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("СЧЕТ");
            
            БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "СУБКОНТОДТ", Строка.ДАННЫЕ);
              БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "СУБКОНТОКТ", Строка.ДАННЫЕ);
            
            РегЗапись.Сумма = Строка.ДАННЫЕ;
            
            
            РегНакоп = РегНакопления.Добавить();
            РегНакоп.Период = ДатаДокумента;
            РегНакоп.Регистратор = ДокОперацияСсылка;
            РегНакоп.Организация = Организация;

                        /* ЗАПОЛНЯЕЙТЕ ПО ТИПУ Регистра */
            
        
        КонецЦикла;

                // Не забывайте ЗАПИСАТЬ ВСЁ ЭТО ДЕЛО //
        РегНакопления.Записать();
        РегХозрасчетный.Записать();


Разницы нет никакой в формировании. То, что у Вас стоит сумма, но нет проводок, скорее всего связано, что Вы не записали эти проводки. В данном коде всё будет наоборот, будут проводки, но не будет суммы =) Дал, просто как образец.
Думаю добавить:
ОпБух.СпособЗаполнения="Вручную";
НовДок.СуммаОперации=НовДок.Движения.Хозрасчетный.Итог("Сумма");

Найдете куда, тем более взять из Вашего листинга.

Спасибо сказали: Advisar, taipan,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 1:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!