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

Колонки с значениями выписаных документов

Автор kot488, 14 авг 2020, 12:28

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

kot488

Помогите пожалуйста со след. проблемой.
Имеется УТП для Украины, на форму списка Счет на оплату покупателю добавил 3 колонки, Докреализация, ДокОплата и НалоговаяНакладная. Нужно чтобы при создании документов на основании счета в нужную колонку выставлялось значение что документ выписан.
Вот такую процедуру сделал, отображает только НН, подскажите пожалуйста что не так сделал


Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетНаОплатуПокупателю.Ссылка,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацииДок.Ссылка) КАК КолДочДок,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НалогНакл.Ссылка) КАК КолНалогНакл,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПриходДенег.Ссылка) КАК КолПрихода
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.СсылкаНаСчет КАК СсылкаНаСчет
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Проведен = ИСТИНА ) КАК РеализацииДок
| ПО СчетНаОплатуПокупателю.Ссылка = РеализацииДок.СсылкаНаСчет
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НалоговаяНакладная.Ссылка КАК Ссылка,
| НалоговаяНакладная.ДокументОснование КАК СсылкаНаСчет
| ИЗ
| Документ.НалоговаяНакладная КАК НалоговаяНакладная ГДЕ НалоговаяНакладная.Проведен = ИСТИНА) КАК НалогНакл
| ПО СчетНаОплатуПокупателю.Ссылка = НалогНакл.СсылкаНаСчет
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПриходныйКассовыйОрдер.Ссылка КАК Ссылка,
| ПриходныйКассовыйОрдер.СсылкаНаСчет КАК СсылкаНаСчет
| ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер ГДЕ ПриходныйКассовыйОрдер.Проведен = ИСТИНА
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПлатежноеПоручениеВходящее.Ссылка,
| ПлатежноеПоручениеВходящее.СсылкаНаСчет
| ИЗ
| Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее ГДЕ ПлатежноеПоручениеВходящее.Проведен = ИСТИНА) КАК ПриходДенег
| ПО СчетНаОплатуПокупателю.Ссылка = ПриходДенег.СсылкаНаСчет
|ГДЕ
| СчетНаОплатуПокупателю.Ссылка В(&СписокСчетов)
|
|СГРУППИРОВАТЬ ПО
| СчетНаОплатуПокупателю.Ссылка";


ДокСчет = Новый Массив;
УказательВывода = Новый Соответствие;

Для Каждого Строка Из ОформленияСтрок Цикл
ДокСчет.Добавить(Строка.ДанныеСтроки.Ссылка);
УказательВывода.Вставить(Строка.ДанныеСтроки.Ссылка, Строка.Ячейки);

ТекущийДолг = 0;
СтруктураОтбора = Новый Структура();
СтруктураОтбора.Вставить("Сделка", Строка.ДанныеСтроки.Ссылка);
ТекущийДолг = РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки(,СтруктураОтбора,"Сделка","СуммаВзаиморасчетов").Итог("СуммаВзаиморасчетов");
Строка.Ячейки.Остаток.Значение =?(ТекущийДолг = 0,"",ТекущийДолг);
КонецЦикла;

Запрос.УстановитьПараметр("СписокСчетов", ДокСчет);    
РезультатВыборки = Запрос.Выполнить().Выбрать();

Пока РезультатВыборки.Следующий() Цикл
УказательНаСтроку = УказательВывода.Получить(РезультатВыборки.Ссылка);
УказательНаСтроку.ДокОплата.Значение = ?(РезультатВыборки.КолПрихода = 0,"",РезультатВыборки.КолПрихода);
УказательНаСтроку.ДокРеализация.Значение = ?(РезультатВыборки.КолДочДок = 0,"",РезультатВыборки.КолДочДок);
УказательНаСтроку.НалоговаяНакладная.Значение = ?(РезультатВыборки.КолНалогНакл = 0,"",РезультатВыборки.КолНалогНакл);




КонецЦикла;

ДокСчет = 0;
УказательВывода = 0;




КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск