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

БП 3.0 Добавить в печатную форму акта сверок номенклатуру документа-регистратора

Автор Sanches_de_la_Vega, 31 янв 2024, 11:39

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

Sanches_de_la_Vega

Друзья, добрый день. Встала задача добавить в печатную форму акта сверок взаиморасчетов поле номенклатуры, которая используется в документах УПД, через расширение. Я добавил в расширение документ, макет, модули менеджера и функции из него, отвечающие за запрос для формирования формы и функции печати. Добавил в макет, в нужную мне область колонку, установил ей значение параметра. Можно ли в него подтянуть номенклатуру, которая используется в документе, как ссылка на документ-основание?

fruitella

Sanches_de_la_Vega, Можно двумя способами.
1) Критерии отбора, получить любой связанный документ.
2) У того дока, где печатаешь вроде есть прям такой реквизит ДокументОснование, можешь прочекать отладкой.

Sanches_de_la_Vega

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

LexaK

Sanches_de_la_Vega, вот пример запроса,
разберетесь?
//Запрос - шаблон
лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
| Док.*, //все поля документа
| //ДокТЧ.*, //все поля ТЧ документа
| ОснТЧ.*  //все поля ТЧ документа основания
|из
| Документ.ВашДокумент Док
|
|//если нужна своя ТЧ
|//левое соединение Документ.ВашДокумент.Товары ДокТЧ
|// по Док.ссылка = ДокТЧ.ссылка
|
|//если нужна ТЧ документа основания
|левое соединение Документ.ВашВидДокументОснования.Товары ОснТЧ
| по Док.ДокументОснования = ОснТЧ.ссылка
|
|Где
|   Док.Ссылка = &Ссылка
|";
лкЗапрос.УстановитьПараметр("Ссылка", ДокументСсылка); 
если помогло нажмите: Спасибо!

Sanches_de_la_Vega


Sanches_de_la_Vega

LexaK, у меня вот такой запрос, акт сверки его использует для заполнения параметров печатной формы
ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТЧПоДаннымОрганизации.Ссылка КАК Документ,
| 0 КАК НомерТабЧасти,
| ВЫБОР
| КОГДА ТЧПоДаннымОрганизации.Ссылка.РазбитьПоДоговорам
| ТОГДА ТЧПоДаннымОрганизации.Договор
| ИНАЧЕ NULL
| КОНЕЦ КАК Договор,
| ТЧПоДаннымОрганизации.НомерСтроки КАК НомерСтроки,
| ТЧПоДаннымОрганизации.Дата КАК Дата,
| ТЧПоДаннымОрганизации.Документ КАК Регистратор,
| ТЧПоДаннымОрганизации.Представление КАК Представление,
| ТЧПоДаннымОрганизации.Дебет КАК Дебет,
| ТЧПоДаннымОрганизации.Кредит КАК Кредит,
| NULL КАК ПредставлениеКонтр,
| NULL КАК ДатаКонтр,
| 0 КАК ДебетКонтр,
| 0 КАК КредитКонтр
|ПОМЕСТИТЬ ДанныеДокумента
|ИЗ
| Документ.АктСверкиВзаиморасчетов.ПоДаннымОрганизации КАК ТЧПоДаннымОрганизации
|ГДЕ
| ТЧПоДаннымОрганизации.Ссылка В(&МассивДокументов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТЧПоДаннымКонтрагента.Ссылка,
| 1,
| ВЫБОР
| КОГДА ТЧПоДаннымКонтрагента.Ссылка.РазбитьПоДоговорам
| ТОГДА ТЧПоДаннымКонтрагента.Договор
| ИНАЧЕ NULL
| КОНЕЦ,
| ТЧПоДаннымКонтрагента.НомерСтроки,
| NULL,
| NULL,
| NULL,
| 0,
| 0,
| ТЧПоДаннымКонтрагента.Представление,
| ТЧПоДаннымКонтрагента.Дата,
| ТЧПоДаннымКонтрагента.Дебет,
| ТЧПоДаннымКонтрагента.Кредит
|ИЗ
| Документ.АктСверкиВзаиморасчетов.ПоДаннымКонтрагента КАК ТЧПоДаннымКонтрагента
|ГДЕ
| ТЧПоДаннымКонтрагента.Ссылка В(&МассивДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Документ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| АктСверкиВзаиморасчетов.Ссылка КАК Документ,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Дата КАК МинДата,
| ДанныеДокумента.Регистратор КАК Регистратор,
| ДанныеДокумента.Представление КАК Представление,
| ДанныеДокумента.ДатаКонтр КАК ДатаКонтр,
| ДанныеДокумента.ПредставлениеКонтр КАК ПредставлениеКонтр,
| ЕСТЬNULL(ДанныеДокумента.Дебет, 0) КАК СуммаОборотДт,
| ЕСТЬNULL(ДанныеДокумента.Кредит, 0) КАК СуммаОборотКт,
| ЕСТЬNULL(ДанныеДокумента.ДебетКонтр, 0) КАК СуммаОборотДтКонтр,
| ЕСТЬNULL(ДанныеДокумента.КредитКонтр, 0) КАК СуммаОборотКтКонтр,
| АктСверкиВзаиморасчетов.Организация КАК Организация,
| АктСверкиВзаиморасчетов.Контрагент КАК Контрагент,
| АктСверкиВзаиморасчетов.Дата КАК ДатаАктаСверки,
| АктСверкиВзаиморасчетов.ПредставительОрганизации КАК ПредставительОрганизации,
| АктСверкиВзаиморасчетов.ПредставительКонтрагента КАК ПредставительКонтрагента,
| АктСверкиВзаиморасчетов.ДатаНачала КАК ДатаНачала,
| АктСверкиВзаиморасчетов.ДатаОкончания КАК ДатаОкончания,
| АктСверкиВзаиморасчетов.ОстатокНаНачало КАК ОстатокНаНачало,
| АктСверкиВзаиморасчетов.Расхождение КАК Расхождение,
| АктСверкиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагентаВШапке,
| ЕСТЬNULL(АктСверкиВзаиморасчетов.ДоговорКонтрагента.ЭтоГруппа, ЛОЖЬ) КАК ДоговорКонтрагентаВШапкеЭтоГруппа,
| АктСверкиВзаиморасчетов.ВалютаДокумента КАК ВалютаДокумента,
| АктСверкиВзаиморасчетов.РазбитьПоДоговорам КАК РазбитьПоДоговорам,
| ЕСТЬNULL(СтатусыДокументов.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыДокументовРеализации.НеПодписан)) = ЗНАЧЕНИЕ(Перечисление.СтатусыДокументовРеализации.Подписан) КАК СверкаСогласована,
| ДанныеДокумента.НомерТабЧасти КАК НомерТабЧасти,
| АктСверкиВзаиморасчетов.СОбособленнымиПодразделениями КАК СОбособленнымиПодразделениями
|ИЗ
| Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокумента КАК ДанныеДокумента
| ПО (ДанныеДокумента.Документ = АктСверкиВзаиморасчетов.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов КАК СтатусыДокументов
| ПО СтатусыДокументов.Документ = АктСверкиВзаиморасчетов.Ссылка
|ГДЕ
| АктСверкиВзаиморасчетов.Ссылка В(&МассивДокументов)
|
|УПОРЯДОЧИТЬ ПО
| НомерТабЧасти,
| ДанныеДокумента.НомерСтроки
|ИТОГИ
| МИНИМУМ(МинДата),
| СУММА(СуммаОборотДт),
| СУММА(СуммаОборотКт),
| СУММА(СуммаОборотДтКонтр),
| СУММА(СуммаОборотКтКонтр),
| МАКСИМУМ(Организация),
| МАКСИМУМ(Контрагент),
| МАКСИМУМ(ДатаАктаСверки),
| МАКСИМУМ(ПредставительОрганизации),
| МАКСИМУМ(ПредставительКонтрагента),
| МАКСИМУМ(ДатаНачала),
| МАКСИМУМ(ДатаОкончания),
| МАКСИМУМ(ОстатокНаНачало),
| МАКСИМУМ(Расхождение),
| МАКСИМУМ(ДоговорКонтрагентаВШапке),
| МАКСИМУМ(ДоговорКонтрагентаВШапкеЭтоГруппа),
| МАКСИМУМ(ВалютаДокумента),
| МАКСИМУМ(РазбитьПоДоговорам),
| МАКСИМУМ(СверкаСогласована),
| МАКСИМУМ(СОбособленнымиПодразделениями)
|ПО
| Документ,
| Договор";

Возврат ТекстЗапроса;

мне нужно еще один запрос сделать с левым соединением или в этот добавить текст?

LexaK

Sanches_de_la_Vega,
множество вариантов может быть,
у вас это запрос не самый простой, собирает данные из 2-х ТЧ
сделайте еще одну функцию для получения данных из ДокументаОснования!
и используйте ее если вам надо вывести данные по Основанию
сделать как здесь
    |ИЗ
    |    Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
    |//        ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокумента КАК ДанныеДокумента
    |//        ПО (ДанныеДокумента.Документ = АктСверкиВзаиморасчетов.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВидДокаОснование.ВашаТЧ КАК ДанныеДокумента //замена ДанныеДокумента  на ТЧ Док.Основания
    |        ПО (ДанныеДокумента.Ссылка = АктСверкиВзаиморасчетов.ДокументОснования)
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск