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

Отчет СКД

Автор sali, 07 окт 2024, 11:04

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

sali

день добрый . есть задание по отчету, хотел уточнить по формированию отчета

Текст задания: Создать отчет "Отчет по Дебиторам/Кредиторам":
1.Группировка по контрагентам;
2.Выводить документы "Реализация товаров и услуг" в колонку Реализация
3.Документы "Приходный кассовый ордер", "Платежное поручение входящее" выводить в колонку Оплата.
4.Выводить документы только по счетам 1590,1410,3210.
5.Итоги по ГОТЗ и ГОИД только по счету 1590.
6.Итоги по реализации и оплате счета 1410,3210.

нужно взять: ссылка, дата, контрагент, договор контрагента, сумма документа, счет расчета, организация из документа Реализация товаров и услуг поместить во временную таблицу
дальше не понимаю , что откуда брать правильно и выставить условие точнее отбор по счетам 3210, 1410, 1590. и как лучше поставить условие, ведь есть счета 1590 это ГОТЗ и ГОИД. образец отчета
Образец_таблицы_Дебиторы_Кредиторы.xlsx - Excel 07.10.2024 13_56_31.png

sali

sali, по поводу колонки Оплаты
в колонку ОПЛАТА выводить суммы из документов "Приходный кассовый ордер", "Платежное поручение входящее" если там счета расчетов равны 1590, 1410, 3210
поясните, пожалуйста

Максим75

sali, Вам же сбрасывали ссылку на то, как работать с бухгалтерскими регистрами.
берете временную таблицу ДвиженияССубконто, там есть доступ к Регистратору, отбор на регистратор накладываете (Регистратор Ссылка Документ.ПриходныКассовыйОрдер или второй документ).
Накладываете отборы на СчетДт или СчетКт (посмотрите в проводках по этим документам, где сидят нужные Вам счета 1590,1410,3210 в дебете или кредите).
Вы сможете таким образом получить выборку документов, уже в самих документах смотрите сумму, контрагента, договор у контрганета.

с реализацией примерно так же.

две выборки - одна по отгрузкам, вторая по оплатам (это если конечно в самих документах счета не сидят, если сидят, тогда вот прямо из документа и выбираете, а выборку делаете по регистру Взаиморасчеты, или что-то в этом духе)

sali

Максим75, как мне сделать отбор по 3 счетам?
Конфигуратор - Бухгалтерия для Кыргызстана, редакция 3 08.10.2024 11_51_26.png
делаю отбор в скд но ничего не выдает, а если один счет выбрать то все получается. что не так делаю?

Максим75

sali, если уж печет сделать через отбор - то вид сравнения ставите В списке и заполняете список счетов.
но речь шла не про отбор на полученный набор записей, а про отбор в виртуальной таблице (разницу чувствуете).
прямо в виртуальной таблице регистра бухгалтерии накладываете условие на счета. ну посмотрите же ту ссылку, там все расписано.

sali

Максим75, не знаете как создать такую таблицу ? я пробую и через новую группу и группа в группе и так и сяк и никак
единственно такая таблица еще как-то похожа, но все равно не тоКонфигуратор - Бухгалтерия для Кыргызстана, редакция 3 08.10.2024 15_40_05.png
 

sali

Максим75,правильно вас понял здесь
Цитата: Максим75 от 07 окт 2024, 11:23sali, Вам же сбрасывали ссылку на то, как работать с бухгалтерскими регистрами.
берете временную таблицу ДвиженияССубконто, там есть доступ к Регистратору, отбор на регистратор накладываете (Регистратор Ссылка Документ.ПриходныКассовыйОрдер или второй документ).
Накладываете отборы на СчетДт или СчетКт (посмотрите в проводках по этим документам, где сидят нужные Вам счета 1590,1410,3210 в дебете или кредите).
Вы сможете таким образом получить выборку документов, уже в самих документах смотрите сумму, контрагента, договор у контрганета.
что настраивать данное условие нужно тут[КОПИЯ] Бухгалтерия для Кыргызстана, редакция 3 09.10.2024 16_52_00.png
только как прописать эти счета в массив?
а то так идет прям выбор счета в отчете, а как в условии прописать чтобы вывод по ним автоматически был???


Максим75

sali, &НаКлиенте
Процедура СформироватьОтчет(Команда)

Если НЕ ЗначениеЗаполнено(Магазин) Тогда

Сообщить(НСтр("ru='Значение реквизита ""Магазин"" не заполнено.';uk='Значення реквізиту ""Магазин"" не заповнено.'"));
Возврат;

КонецЕсли;
СформироватьОтчетНаСервере();
//Результат.ТолькоПросмотр=Истина;
КонецПроцедуры

&НаСервере
Процедура СформироватьОтчетНаСервере()
Обработка = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = Обработка.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;   

КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

НастройкиКомпоновщика = КомпоновщикНастроек.Настройки;
ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных;


Параметр = ПараметрыНастройки.Элементы.Найти("ДатаНач");
Параметр.Использование = Истина;
Параметр.Значение = НачалоПериода;

Параметр = ПараметрыНастройки.Элементы.Найти("ДатаКон");
Параметр.Использование = Истина;
Параметр.Значение = КонецДня(КонецПериода);

Параметр = ПараметрыНастройки.Элементы.Найти("НужныйМагазин");
Параметр.Использование = Истина;
Параметр.Значение = Магазин;

Параметр = ПараметрыНастройки.Элементы.Найти("НужныйСклад");
Параметр.Использование = Истина;
Параметр.Значение = Магазин.СкладПоступления;

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

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; 

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ТабличныйДокумент = Новый ТабличныйДокумент; 

Результат.Очистить();
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//ЗначениеВРеквизитФормы(ТабличныйДокумент,"Результат");


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

Если кратко, то как-то так.
Параметры запроса определяете программно, массив тоже создаете и заполняете нужными счетами.
Переопределяете кнопку, которая формирует сам отчет.

Теги:

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

Рейтинг@Mail.ru

Поиск