|
1С Конфигуратор, помогите пожалуйста с операциями)) | ☑ | ||
---|---|---|---|---|
0
MrArtemSolovev
19.04.18
✎
18:14
|
Суть в чём, есть форма, которая отвечает за вывод информации об расчётах по займам выданным контрагентам, всё работает прекрасно, таблица в конечном итоге формируется, но операции и проводки идут датой конца периода, который выбирает пользователь, а требуется, чтобы операции шли последним числом месяца, пример:
Есть два расчёта, один был в феврале, второй в апреле, пользователь выбирает период с 1 февраля по 30 апреля, на выходе получает нормальную форму, с договорами и датами, но операции и проводки стоят от 30 апреля, а нужно чтобы февральский расчёт по операции шёл 28 февраля, а апрельский следовательно 30 апреля и вот как это вообще сделать? сейчас запрос выглядит так: ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК Сумма, ХозрасчетныйОстаткиИОбороты.Период КАК Период, ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2, КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК ПерМесяц ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Начало, &Конец, День, ДвиженияИГраницыПериода, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты ИТОГИ СУММА(Сумма) ПО Субконто1, Субконто2"; |
|||
1
MrArtemSolovev
19.04.18
✎
18:23
|
Приведу весь листинг на всякий случай
Функция СформироватьНаСервере() // Вставить содержимое обработчика. Запрос = Новый запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК Сумма, | ХозрасчетныйОстаткиИОбороты.Период КАК Период, | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2, | КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК ПерМесяц |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Начало, &Конец, День, ДвиженияИГраницыПериода, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(Сумма) |ПО | Субконто1, | Субконто2"; Запрос.УстановитьПараметр("Начало",Начало_периода); Запрос.УстановитьПараметр("Конец",Конец_периода); Запрос.УстановитьПараметр("Организация",Организация); //Запрос.УстановитьПараметр("Контрагент",Контрагент); //Запрос.УстановитьПараметр("Договор",Договор); Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.ПредоставленныеЗаймы); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); КоличествоДнейВГоду = ДеньГода(КонецГода(Конец_периода)); ДатаПредыдущая = Начало_периода; НаращеннаяСумма = 0; МойТабличныйДокумент = Новый ТабличныйДокумент; ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Макет = ОтчетОбъект.ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьИтог = Макет.ПолучитьОбласть("Итог"); ОбластьПробел = Макет.ПолучитьОбласть ("Пробел"); //МойТабличныйДокумент.Вывести(ОбластьШапка); ВыборкаКонтрагентов = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); //проверка Создать операцию Если СоздатьОперацию Тогда Операция = Документы.ОперацияБух.СоздатьДокумент(); Операция.Дата = Конец_периода; Операция.Комментарий = "Начисление процентов по предоставленному займу"; Операция.Содержание = "Начисление процентов по предоставленному займу"; Операция.Организация = Организация; Операция.СпособЗаполнения = "Вручную"; КонецЕсли; Пока ВыборкаКонтрагентов.Следующий() Цикл ВыборкаДоговоров = ВыборкаКонтрагентов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаДоговоров.Следующий() Цикл ОбластьШапка.Параметры.Контрагент = ВыборкаДоговоров.Субконто1; ОбластьШапка.Параметры.Договор = ВыборкаДоговоров.Субконто2; МойТабличныйДокумент.Вывести(ОбластьШапка); Выборка = ВыборкаДоговоров.Выбрать(); НаращеннаяСумма = 0; ДатаПредыдущая = Начало_периода; Пока Выборка.Следующий()Цикл ДатаТекущая = Выборка.Период; //на 2 марта сумма остатков = 0, на 26 марта с периодом 24 дня остаток 10 млн СуммаТекущая = Выборка.Сумма; //на период между датой предыдущей и датой текущей должны начислить проценты на сумму КоличествоДней = ((ДатаТекущая - ДатаПредыдущая)/3600)/24; Если (ДатаПредыдущая = ДатаТекущая) и (СуммаТекущая <> 0) тогда КоличествоДней = КоличествоДней +1; КонецЕсли; Проценты = ОКР(СуммаТекущая*Процентная_ставка/100*КоличествоДней/КоличествоДнейВГоду, 2); НаращеннаяСумма = НаращеннаяСумма + Проценты; ОбластьСтрока.Параметры.ДатаПредыдущая = ДатаПредыдущая; ОбластьСтрока.Параметры.ДатаТекущая = ДатаТекущая; ОбластьСтрока.Параметры.Сумма = СуммаТекущая; ОбластьСтрока.Параметры.Проценты = Проценты; МойТабличныйДокумент.Вывести(ОбластьСтрока); ДатаПредыдущая = ДатаТекущая; //создание опреации ОбщаяСумма = 0; Конеццикла; ОбластьИтог.Параметры.НаращеннаяСумма = НаращеннаяСумма; ОбластьИтог.Параметры.Заполнить(ВыборкаКонтрагентов); МойТабличныйДокумент.Вывести(ОбластьИтог); ОбластьПробел.Параметры.Заполнить(ВыборкаДоговоров); МойТабличныйДокумент.Вывести(ОбластьПробел); Если СоздатьОперацию И (НаращеннаяСумма <> 0) Тогда //добавляем проводки Проводка = Операция.Движения.Хозрасчетный.Добавить(); Проводка.Активность = Истина; Проводка.Организация = Организация; Проводка.Период = Конец_периода; Проводка.Содержание = "Начисление процентов по предоставленному займу";//другое содержание, не то, что в документе, может быть для каждой строки разное Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами; Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ВыборкаКонтрагентов.Субконто1; Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ВыборкаДоговоров.Субконто2; Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеДоходы; Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПрочиеДоходыИРасходы] = СтатьяРасходов; Проводка.Сумма = НаращеннаяСумма; Проводка.СуммаНУКт = НаращеннаяСумма; ОбщаяСумма = ОбщаяСумма + НаращеннаяСумма; КонецЕсли; КонецЦикла; КонецЦикла; Если СоздатьОперацию И (ОбщаяСумма <> 0) Тогда Операция.СуммаОперации = ОбщаяСумма; Операция.Движения.Хозрасчетный.Записывать = Истина; Операция.Записать(РежимЗаписиДокумента.Запись); Операция.Движения.Хозрасчетный.Записать(Истина); Сообщить("Создана " + Операция); КонецЕсли; //сумма по всем контрагентам //ОбластьИтог.Параметры.НаращеннаяСумма = НаращеннаяСумма; //МойТабличныйДокумент.Вывести(ОбластьПробел); //МойТабличныйДокумент.Вывести(ОбластьИтог); Возврат МойТабличныйДокумент; //ТекстСообщения = НаращеннаяСумма; //Сообщить(ТекстСообщения); КонецФункции |
|||
2
hhhh
20.04.18
✎
00:13
|
Ну вот в этом месте
Если СоздатьОперацию Тогда Операция = Документы.ОперацияБух.СоздатьДокумент(); Операция.Дата = Конец_периода; напишите Операция.Дата = То что нужно |
|||
3
MrArtemSolovev
20.04.18
✎
08:09
|
Так вот в том, то и дело, что если я вставлю туда к примеру ПерМесяц, как конец периода, то ничего не меняется)
|
|||
4
MrArtemSolovev
20.04.18
✎
08:12
|
Появляется ошибка, что дата документа должна быть не ранее 2000 года и ошибка записи операции
|
|||
5
catena
20.04.18
✎
08:13
|
Еще у Проводка.Период надо дату менять
|
|||
6
catena
20.04.18
✎
08:14
|
(4)Ну так проверь, что у тебя там в ПерМесяц
|
|||
7
MrArtemSolovev
20.04.18
✎
08:22
|
КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК ПерМесяц
Получается в ПерМесяц, у меня последняя дата каждого месяца периода остатков и оборотов при добавлении его в Период.Проводка, тоже вываливается с ошибкой, даты документа |
|||
8
hhhh
20.04.18
✎
08:27
|
(7) так у вас
Операция.Дата = Конец_периода; еще до запроса присваивается, что вы нам втюхиваете? А вы перМесяц уже потом намного позже, уже в запросме вычисляете. |
|||
9
MrArtemSolovev
20.04.18
✎
08:30
|
Честно не втюхиваю) Просто видимо у нас вот так вот классно преподают программирование в 1С, диктуя код под запись, как диктант)
|
|||
10
MrArtemSolovev
20.04.18
✎
08:31
|
а потом дают задания, которые ты вообще понятия не имеешь как делать) так что прощу прощения, если чем то вас обидел
|
|||
11
фросия
20.04.18
✎
08:31
|
(9) а так всегда будет. нет готовых решений. вам дали вектор- думайте.
|
|||
12
MrArtemSolovev
20.04.18
✎
08:33
|
Я понимаю, что нет готовых решений) просто я в принципе не могу понять, куда мне этот ПерМесяц запихнуть нужно
|
|||
13
catena
20.04.18
✎
08:34
|
(9)При чем тут модель преподавания? У вас выборка из запроса открывается раньше, чем вы пытаетесь из нее значения дергать.
>"КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) >КАК ПерМесяц >Получается в ПерМесяц," Я не спрашивала, как вы думаете, я сказала посмотреть. Отладчиком. Отследить эволюцию всех интересующих переменных. |
|||
14
catena
20.04.18
✎
08:34
|
открывается раньше - > читать как "открывается позже"
|
|||
15
MrArtemSolovev
20.04.18
✎
08:36
|
Понял, спасибо
|
|||
16
MrArtemSolovev
20.04.18
✎
09:38
|
ну собственно, я переделал, как советовали
Функция СформироватьНаСервере() // Вставить содержимое обработчика. Запрос = Новый запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК Сумма, | ХозрасчетныйОстаткиИОбороты.Период КАК Период, | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2, | КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК МЕСЯЦ |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Начало, &Конец, День, ДвиженияИГраницыПериода, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(Сумма) |ПО | Субконто1, | Субконто2"; Запрос.УстановитьПараметр("Начало",Начало_периода); Запрос.УстановитьПараметр("Конец",Конец_периода); Запрос.УстановитьПараметр("Организация",Организация); //Запрос.УстановитьПараметр("Контрагент",Контрагент); //Запрос.УстановитьПараметр("Договор",Договор); Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.ПредоставленныеЗаймы); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); КоличествоДнейВГоду = ДеньГода(КонецГода(Конец_периода)); ДатаПредыдущая = Начало_периода; НаращеннаяСумма = 0; МойТабличныйДокумент = Новый ТабличныйДокумент; ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Макет = ОтчетОбъект.ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьИтог = Макет.ПолучитьОбласть("Итог"); ОбластьПробел = Макет.ПолучитьОбласть ("Пробел"); //МойТабличныйДокумент.Вывести(ОбластьШапка); ВыборкаКонтрагентов = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); //проверка Создать операцию Пока ВыборкаКонтрагентов.Следующий() Цикл ВыборкаДоговоров = ВыборкаКонтрагентов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаДоговоров.Следующий() Цикл ОбластьШапка.Параметры.Контрагент = ВыборкаДоговоров.Субконто1; ОбластьШапка.Параметры.Договор = ВыборкаДоговоров.Субконто2; МойТабличныйДокумент.Вывести(ОбластьШапка); Выборка = ВыборкаДоговоров.Выбрать(); НаращеннаяСумма = 0; ДатаПредыдущая = Начало_периода; Пока Выборка.Следующий()Цикл ДатаТекущая = Выборка.Период; //на 2 марта сумма остатков = 0, на 26 марта с периодом 24 дня остаток 10 млн СуммаТекущая = Выборка.Сумма; //на период между датой предыдущей и датой текущей должны начислить проценты на сумму КоличествоДней = ((ДатаТекущая - ДатаПредыдущая)/3600)/24; Если (ДатаПредыдущая = ДатаТекущая) и (СуммаТекущая <> 0) тогда КоличествоДней = КоличествоДней +1; КонецЕсли; Проценты = ОКР(СуммаТекущая*Процентная_ставка/100*КоличествоДней/КоличествоДнейВГоду, 2); НаращеннаяСумма = НаращеннаяСумма + Проценты; ОбластьСтрока.Параметры.ДатаПредыдущая = ДатаПредыдущая; ОбластьСтрока.Параметры.ДатаТекущая = ДатаТекущая; ОбластьСтрока.Параметры.Сумма = СуммаТекущая; ОбластьСтрока.Параметры.Проценты = Проценты; МойТабличныйДокумент.Вывести(ОбластьСтрока); ДатаПредыдущая = ДатаТекущая; //создание опреации ОбщаяСумма = 0; Если СоздатьОперацию Тогда Операция = Документы.ОперацияБух.СоздатьДокумент(); Операция.Дата = Выборка.МЕСЯЦ; Операция.Комментарий = "Начисление процентов по предоставленному займу"; Операция.Содержание = "Начисление процентов по предоставленному займу"; Операция.Организация = Организация; Операция.СпособЗаполнения = "Вручную"; КонецЕсли; Если СоздатьОперацию И (НаращеннаяСумма <> 0) Тогда //добавляем проводки Проводка = Операция.Движения.Хозрасчетный.Добавить(); Проводка.Активность = Истина; Проводка.Организация = Организация; Проводка.Период = Выборка.МЕСЯЦ; Проводка.Содержание = "Начисление процентов по предоставленному займу";//другое содержание, не то, что в документе, может быть для каждой строки разное Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами; Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ВыборкаКонтрагентов.Субконто1; Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ВыборкаДоговоров.Субконто2; Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеДоходы; Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПрочиеДоходыИРасходы] = СтатьяРасходов; Проводка.Сумма = НаращеннаяСумма; Проводка.СуммаНУКт = НаращеннаяСумма; ОбщаяСумма = ОбщаяСумма + НаращеннаяСумма; КонецЕсли; Конеццикла; ОбластьИтог.Параметры.НаращеннаяСумма = НаращеннаяСумма; ОбластьИтог.Параметры.Заполнить(ВыборкаКонтрагентов); МойТабличныйДокумент.Вывести(ОбластьИтог); ОбластьПробел.Параметры.Заполнить(ВыборкаДоговоров); МойТабличныйДокумент.Вывести(ОбластьПробел); КонецЦикла; КонецЦикла; Если СоздатьОперацию И (ОбщаяСумма <> 0) Тогда Операция.СуммаОперации = ОбщаяСумма; Операция.Движения.Хозрасчетный.Записывать = Истина; Операция.Записать(РежимЗаписиДокумента.Запись); Операция.Движения.Хозрасчетный.Записать(Истина); Сообщить("Создана " + Операция); КонецЕсли; //сумма по всем контрагентам //ОбластьИтог.Параметры.НаращеннаяСумма = НаращеннаяСумма; //МойТабличныйДокумент.Вывести(ОбластьПробел); //МойТабличныйДокумент.Вывести(ОбластьИтог); Возврат МойТабличныйДокумент; //ТекстСообщения = НаращеннаяСумма; //Сообщить(ТекстСообщения); КонецФункции |
|||
17
MrArtemSolovev
20.04.18
✎
09:38
|
В итоге, выводятся февральские операции на 30 апреля, а апрельских вообще нет
|
|||
18
Доминошник
20.04.18
✎
10:00
|
(17) Создаём операции в цикле, а записываем только после цикла?
|
|||
19
MrArtemSolovev
20.04.18
✎
10:09
|
Доминошник, спасибо) выводятся раздельно) но обе идут от 30 апреля, код ниже
|
|||
20
MrArtemSolovev
20.04.18
✎
10:10
|
Функция СформироватьНаСервере()
// Вставить содержимое обработчика. Запрос = Новый запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК Сумма, | ХозрасчетныйОстаткиИОбороты.Период КАК Период, | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2, | КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК МЕСЯЦ |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Начало, &Конец, День, ДвиженияИГраницыПериода, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(Сумма) |ПО | Субконто1, | Субконто2"; Запрос.УстановитьПараметр("Начало",Начало_периода); Запрос.УстановитьПараметр("Конец",Конец_периода); Запрос.УстановитьПараметр("Организация",Организация); //Запрос.УстановитьПараметр("Контрагент",Контрагент); //Запрос.УстановитьПараметр("Договор",Договор); Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.ПредоставленныеЗаймы); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); КоличествоДнейВГоду = ДеньГода(КонецГода(Конец_периода)); ДатаПредыдущая = Начало_периода; НаращеннаяСумма = 0; МойТабличныйДокумент = Новый ТабличныйДокумент; ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Макет = ОтчетОбъект.ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьИтог = Макет.ПолучитьОбласть("Итог"); ОбластьПробел = Макет.ПолучитьОбласть ("Пробел"); //МойТабличныйДокумент.Вывести(ОбластьШапка); ВыборкаКонтрагентов = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); //проверка Создать операцию Пока ВыборкаКонтрагентов.Следующий() Цикл ВыборкаДоговоров = ВыборкаКонтрагентов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаДоговоров.Следующий() Цикл ОбластьШапка.Параметры.Контрагент = ВыборкаДоговоров.Субконто1; ОбластьШапка.Параметры.Договор = ВыборкаДоговоров.Субконто2; МойТабличныйДокумент.Вывести(ОбластьШапка); Выборка = ВыборкаДоговоров.Выбрать(); НаращеннаяСумма = 0; ДатаПредыдущая = Начало_периода; Пока Выборка.Следующий()Цикл ДатаТекущая = Выборка.Период; //на 2 марта сумма остатков = 0, на 26 марта с периодом 24 дня остаток 10 млн СуммаТекущая = Выборка.Сумма; //на период между датой предыдущей и датой текущей должны начислить проценты на сумму КоличествоДней = ((ДатаТекущая - ДатаПредыдущая)/3600)/24; Если (ДатаПредыдущая = ДатаТекущая) и (СуммаТекущая <> 0) тогда КоличествоДней = КоличествоДней +1; КонецЕсли; Проценты = ОКР(СуммаТекущая*Процентная_ставка/100*КоличествоДней/КоличествоДнейВГоду, 2); НаращеннаяСумма = НаращеннаяСумма + Проценты; ОбластьСтрока.Параметры.ДатаПредыдущая = ДатаПредыдущая; ОбластьСтрока.Параметры.ДатаТекущая = ДатаТекущая; ОбластьСтрока.Параметры.Сумма = СуммаТекущая; ОбластьСтрока.Параметры.Проценты = Проценты; МойТабличныйДокумент.Вывести(ОбластьСтрока); ДатаПредыдущая = ДатаТекущая; //создание опреации ОбщаяСумма = 0; Если СоздатьОперацию Тогда Операция = Документы.ОперацияБух.СоздатьДокумент(); Операция.Дата = Выборка.МЕСЯЦ; Операция.Комментарий = "Начисление процентов по предоставленному займу"; Операция.Содержание = "Начисление процентов по предоставленному займу"; Операция.Организация = Организация; Операция.СпособЗаполнения = "Вручную"; КонецЕсли; Если СоздатьОперацию И (НаращеннаяСумма <> 0) Тогда //добавляем проводки Проводка = Операция.Движения.Хозрасчетный.Добавить(); Проводка.Активность = Истина; Проводка.Организация = Организация; Проводка.Период = Выборка.МЕСЯЦ; Проводка.Содержание = "Начисление процентов по предоставленному займу";//другое содержание, не то, что в документе, может быть для каждой строки разное Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами; Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ВыборкаКонтрагентов.Субконто1; Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ВыборкаДоговоров.Субконто2; Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеДоходы; Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПрочиеДоходыИРасходы] = СтатьяРасходов; Проводка.Сумма = НаращеннаяСумма; Проводка.СуммаНУКт = НаращеннаяСумма; ОбщаяСумма = ОбщаяСумма + НаращеннаяСумма; КонецЕсли; Если СоздатьОперацию И (ОбщаяСумма <> 0) Тогда Операция.СуммаОперации = ОбщаяСумма; Операция.Движения.Хозрасчетный.Записывать = Истина; Операция.Записать(РежимЗаписиДокумента.Запись); Операция.Движения.Хозрасчетный.Записать(Истина); Сообщить("Создана " + Операция); КонецЕсли; Конеццикла; ОбластьИтог.Параметры.НаращеннаяСумма = НаращеннаяСумма; ОбластьИтог.Параметры.Заполнить(ВыборкаКонтрагентов); МойТабличныйДокумент.Вывести(ОбластьИтог); ОбластьПробел.Параметры.Заполнить(ВыборкаДоговоров); МойТабличныйДокумент.Вывести(ОбластьПробел); КонецЦикла; КонецЦикла; //сумма по всем контрагентам //ОбластьИтог.Параметры.НаращеннаяСумма = НаращеннаяСумма; //МойТабличныйДокумент.Вывести(ОбластьПробел); //МойТабличныйДокумент.Вывести(ОбластьИтог); Возврат МойТабличныйДокумент; //ТекстСообщения = НаращеннаяСумма; //Сообщить(ТекстСообщения); КонецФункции |
|||
21
Доминошник
20.04.18
✎
10:22
|
(20) Я бы, скорее всего, добавил бы в запросе итоги по месяцам, и создавал бы операции в обходе месяцев.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |