Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 19:05

Создание проводки в БП

Автор Vasylii, 06 июн 2023, 15:21

0 Пользователей и 1 гость просматривают эту тему.

Vasylii

Не много не пойму как сделать что бы создавалась одна проводка, например у меня есть два документа в одном одна позиция и про проведении создается одна провдка дополнительная, в другом много позиции и при проведении создается много проводок дополнительных на этот документ
Если ВидОперации = перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя
И ЗначениеЗаполнено(СуммаУслуг) Тогда

// Для Каждого СтрокаТЧ из Движения.Хозрасчетный Цикл
// КоэффицентУслуг = 0;
// Если СтрокаТЧ.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51") И
// Лев(Строка(СтрокаТЧ.СчетКт), 2) = "62" Тогда
// КоэффицентУслуг = КоэффицентУслуг + 1;
// КонецЕсли;
// КонецЦикла;

Движения.Хозрасчетный.Записывать = Истина;
Для каждого СтрокаТЧ из Движения.Хозрасчетный Цикл

//добавить условие
Если СтрокаТЧ.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51") И
Лев(Строка(СтрокаТЧ.СчетКт), 2) = "62" Тогда

НоваяПроводка             = Движения.Хозрасчетный.Добавить();

Если НоваяПроводка.Количество() > 1 тогда
Прервать;
КонецЕсли;
                                                                   
НоваяПроводка.Организация = Организация;
НоваяПроводка.Период      = СтрокаТЧ.Период;
НоваяПроводка.Регистратор = Ссылка;


НоваяПроводка.СчетДт      = СчетУчетаРасчетовСКонтрагентом;
НоваяПроводка.ПодразделениеДт = ПодразделениеКт;

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

//НоваяПроводка.СчетКт          = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
НоваяПроводка.СчетКт          = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");
НоваяПроводка.ПодразделениеКт = ПодразделениеКт;

Для i = 1 по 3 цикл
//ЗначениеСубконто = ПолучитьСубконто(СтрокаТЧ.СчетКт, СтрокаТЧ.СубконтоКт, i);
//БухгалтерскийУчет.УстановитьСубконто(НоваяПроводка.СчетКт, НоваяПроводка.СубконтоКт, i, ЗначениеСубконто);
ЗначениеСубконто = ПолучитьСубконто(СтрокаТЧ.СчетДт, СтрокаТЧ.СубконтоДт, i);
БухгалтерскийУчет.УстановитьСубконто(НоваяПроводка.СчетКт, НоваяПроводка.СубконтоКт, i, ЗначениеСубконто);

КонецЦикла;

НоваяПроводка.Сумма        = СуммаУслуг;

КонецЕсли;


КонецЦикла;

Движения.Хозрасчетный.Записать();   

КонецЕсли;

Afinogen

как то  логіку не пойму,  вы берете проводки из регистра хозрасчетный и добавляете к ним еще что ли

Vasylii

Afinogen, да, перебираю проводку из регистра и добавляю новую

Afinogen

 B) а что  мешает выгрузить первоначальный набор в таблицу значений в нее потом добавить то что  вам нужно,  если нужно свернуть и потмо все это счастье залить снвоа в набор?

Vasylii

Afinogen, ну во  первых я под таким разрезом даже не думал делать и не знаю как, да и зачем так усложнять когда можно просто взять некоторые данные из старой проводки и добавить в новую

Afinogen

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

типа так

ТЗ1 = Движения.Хозрасчетный.Выгрузить()

ТЗ2 =ТЗ1.Скопировать();
ТЗ2.Очистить();

Для Каждого СТр ИЗ ТЗ1 Цикл

//ваши условия для второй проводки
НоваячСтрока = ТЗ2.Добавить()

КонецЦикла

//если надо  можете свернуть ТЗ2

Для Каждого Стр ИЗ ТЗ2 Цикл

 НоваяПроводка             = Движения.Хозрасчетный.Добавить();

КонецЦикла;

типа такого




Похожие темы (5)

Рейтинг@Mail.ru

Поиск