1С Предприятие 7.7(сетевая версия) - 7.70.027,Конфигурация: ПУБ (7.70.010)
Подскажите, что не так делаю, есть два документа, ДоговорРасх и БанковскаВыписка. В банковских выписках есть реквизит субконто3 в котором указывается ДоговорРасх.Необходимо чтобы в отчет выводило из документа ДоговорРасх следующие поля: контрагент, номердоговора,датаначала,датаокончания, коддк,сумма1, и из документа БанковскаяВыписка чтобы подсоединяло суммасндс и датадок:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы Проведенные;
|Контрагент = Документ.ДоговорРасх.Контрагент;
|НомерДоговора = Документ.ДоговорРасх.НомерДоговора;
|ДатаНачала = Документ.ДоговорРасх.ДатаНачала;
|ДатаОкончания = Документ.ДоговорРасх.ДатаОкончания;
|Сумма1 = Документ.ДоговорРасх.Сумма1;
|Док = Документ.БанковскаяВыписка.ТекущийДокумент;
|Группировка Контрагент;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Док = "";
Пока Запрос.Группировка(1) = 1 Цикл
Док = Запрос.Док;
Контрагент = Запрос.Контрагент;
НомерДоговора = Запрос.НомерДоговора;
Сумма1 = Запрос.Сумма1;
ДатаНачала = Запрос.ДатаНачала;
ДатаОкончания = Запрос.ДатаОкончания;
Если (Док.Вид() = "БанковскаяВыписка") Тогда
Если ПустоеЗначение ("Субконто1") = 0 Тогда
СуммаСНДС = Док.СуммаСНДС;
КонецЕсли;
КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
в принципе да, необходимо запрос который бы выбирал из банковских выписок строки с указанным договором, а именно нужна соответветствующая договору сумма
Таким запросом как делаете Вы будет тяжело получить нужные данные. Субконто3 как и 1 и 2 - неопределенного типа. Ваш запрос должен был бы выглядеть примерно так :
ДокРасх = Документ.БанковскаяВыписка.Субконто3;
Контрагент = Документ.БанковскаяВыписка.Субконто3.Контрагент
ДатаОплаты = Документ.БанковскаяВыписка.ДатаДок;
СуммаОплаты = Документ.БанковскаяВыписка.СуммаСНДС
Группировка Контрагент;
Где то на форуме уже поднималась тема с банковской выпиской и с субконто неопределенного типа. Поищите. Думаю там есть ответ на Ваш вопрос.
Я честно сказать не помню, только, где точно.
Вообще-то, когда я проходил атестацию по 1С, то экзаменатор, сказал: "Никогда не делать отчеты по документам, только по движениям которые делает документ." Это как-раз тот случай.
Они много чего говорят, не обязательно их слушать. А случай действительно тот. Если это ПУБ, то там и движения по регистрам должны быть.
Конфигурация Буха 7.7 289
Есть список для отбора в запросе
ДокНАйти = СоздатьОбъект("Документ.ПриходнаяНакладная");
СпПартий = СоздатьОбъект("СписокЗначений");
Флаг=1;
ТзДокументДанные.ВыбратьСтроки();
Пока ТзДокументДанные.ПолучитьСтроку()=1 Цикл
Если Флаг=1 Тогда
Если ДокНАйти.НайтиПоНомеру(ТзДокументДанные.НомерДокума,ТзДокументДанные.ДатаДокум,)= 1 тогда
ДокТек =ДокНайти.ТекущийДокумент();
СпПартий.ДобавитьЗначение(ДокТек);
ПрошлыйНомерДокума = ТзДокументДанные.НомерДокума;
Флаг=0;
КонецЕсли;
КонецЕсли;
Если (ТзДокументДанные.НомерДокума <> ПрошлыйНомерДокума) Тогда
Если ДокНАйти.НайтиПоНомеру(ТзДокументДанные.НомерДокума,ТзДокументДанные.ДатаДокум,)= 1 тогда
ДокТек = ДокНайти.ТекущийДокумент();
СпПартий.ДобавитьЗначение(ДокТек);
ПрошлыйНомерДокума = ТзДокументДанные.НомерДокума;
Флаг=0;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|РасходнаяНакладная = Документ.РасходнаяНакладная.ТекущийДокумент;
|Фирма = Документ.РасходнаяНакладная.Фирма;
|Патриот = Документ.РасходнаяНакладная.Партия.Док;
|ДатаПартии =Документ.РасходнаяНакладная.Партия.Дата_Прих;
|Группировка РасходнаяНакладная;
|Группировка Патриот;
|Группировка ДатаПартии;
|без Итогов;
|Условие(Фирма в Фирма);
|Условие(Патриот в СпПартий);
|"
Тема закрыта.
Kutuzov, может и название темы соответствует вашей мысли, но т.к. смысл другой, насколько я понимаю, то создавайте новую тему.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua