Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как дополнить запрос?

Добрый день!
В КА есть стандартный отчет "Отчет по кредитной линии".
Появилась необходимость добавить еще несколько полей.
В частности поле "Номер входящей счет-фактуры".
Ни как не могу сообразить как переделать стандартный запрос, что бы получить эту информацию.
Помогите пожалуйста.

Стандартный запрос:
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Календарь.ДатаКалендаря КАК ДатаКалендаря,
| КОЛИЧЕСТВО(*) КАК Ранг
|ПОМЕСТИТЬ Календарь
|ИЗ
| РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК КалендарьКопия
|ПО
| Календарь.ДатаКалендаря >= КалендарьКопия.ДатаКалендаря
|ГДЕ
| (Календарь.ДатаКалендаря >= &МинимальнаяДата И (Календарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий) ИЛИ Календарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)))
| И (КалендарьКопия.ДатаКалендаря >= &МинимальнаяДата И (КалендарьКопия.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий) ИЛИ КалендарьКопия.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)))
|СГРУППИРОВАТЬ ПО Календарь.ДатаКалендаря
|ИНДЕКСИРОВАТЬ ПО
| ДатаКалендаря
|;
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КалендарьРанг.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| Календарь.ДатаКалендаря КАК ДатаКалендаря
|ПОМЕСТИТЬ РабочаяДатаВзаиморасчетыОстаткиИОбороты
|ИЗ
| Календарь КАК Календарь
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
|( ВЫБРАТЬ
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| МИНИМУМ(Календарь.Ранг) + МИНИМУМ(ВзаиморасчетыОстаткиИОбороты.ДопустимоеЧислоДнейЗадолженности) КАК РангСоединения,
| МИНИМУМ(Календарь.Ранг) КАК Ранг
| ИЗ
| (ВЫБРАТЬ
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| МИНИМУМ(ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ДопустимоеЧислоДнейЗадолженности,
| НАЧАЛОПЕРИОДА(МИНИМУМ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата), День) КАК Дата
| ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&ДатаНач, &ДатаКон,Регистратор {&Периодичность},,
| ДоговорКонтрагента.ВидДоговора В (&МассивВидовДоговоров)
| И ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности > 0
| И ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА) КАК ВзаиморасчетыОстаткиИОбороты
| ГДЕ ВзаиморасчетыОстаткиИОбороты.УпрУчет
| СГРУППИРОВАТЬ ПО ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом
| ) КАК ВзаиморасчетыОстаткиИОбороты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Календарь КАК Календарь
| ПО
| ВзаиморасчетыОстаткиИОбороты.Дата <= Календарь.ДатаКалендаря
| СГРУППИРОВАТЬ ПО
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом
|) КАК КалендарьРанг
|ПО
| КалендарьРанг.РангСоединения = Календарь.Ранг
|ИНДЕКСИРОВАТЬ ПО
| ДокументРасчетовСКонтрагентом
|;
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВзаиморасчетыОстаткиИОбороты.Организация КАК Организация,
| ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент,
| ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| ВзаиморасчетыОстаткиИОбороты.Период КАК Период,
| ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Регистратор,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход
| КОНЕЦ КАК Отгрузка,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход
| КОНЕЦ КАК Оплата,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрПриход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход
| КОНЕЦ
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрРасход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход
| КОНЕЦ
| КОНЕЦ КАК ОтгрузкаУпр,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрРасход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход
| КОНЕЦ
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрПриход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход
| КОНЕЦ
| КОНЕЦ КАК ОплатаУпр,
| ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ЧислоДней,
| &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК ДолгКонтрагента,
| ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности КАК ГлубинаКредитнойЛинии,
| &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаВзаиморасчетовОстаток = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаУпрОстаток /
| РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаВзаиморасчетовОстаток
| КОНЕЦ КАК ДолгКонтрагентаУпр,
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата КАК ДатаОтгрузки,
| ВЫБОР КОГДА &СпособКонтроляДнейЗадолженности = ЗНАЧЕНИЕ(Перечисление.СпособыКонтроляДнейЗадолженности.ПоРабочимДням)
| ТОГДА ЕСТЬNULL(РабочаяДатаВзаиморасчетыОстаткиИОбороты.ДатаКалендаря, ДАТАВРЕМЯ(0001,01,01,00,00,00))
| ИНАЧЕ ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности)
| КОНЕЦ КАК Срок
| //ПОЛЯ_СВОЙСТВА
| //ПОЛЯ_КАТЕГОРИИ
|{ВЫБРАТЬ
| Организация.* КАК Организация,
| Контрагент.* КАК Контрагент,
| ДоговорКонтрагента.* КАК ДоговорКонтрагента,
| ДокументРасчетовСКонтрагентом.* КАК ДокументРасчетовСКонтрагентом,
| Отгрузка КАК Отгрузка,
| Оплата КАК Оплата,
| ОтгрузкаУпр КАК ОтгрузкаУпр,
| ОплатаУпр КАК ОплатаУпр,
| ЧислоДней КАК ЧислоДней,
| ГлубинаКредитнойЛинии КАК ГлубинаКредитнойЛинии,
| ДолгКонтрагента КАК ДолгКонтрагента,
| ДолгКонтрагентаУпр КАК ДолгКонтрагентаУпр,
| Срок КАК Срок,
| Период КАК Период,
| Регистратор КАК Регистратор,
| ДатаОтгрузки КАК ДатаОтгрузки
| //ПСЕВДОНИМЫ_СВОЙСТВА
| //ПСЕВДОНИМЫ_КАТЕГОРИИ
|}
|ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&ДатаНач, &ДатаКон,
| Регистратор {&Периодичность},,ДоговорКонтрагента.ВидДоговора В (&МассивВидовДоговоров) И
| ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности > 0 и
| ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА
| {ДоговорКонтрагента.*, Контрагент.*, Организация.*, ДокументРасчетовСКонтрагентом.*})КАК ВзаиморасчетыОстаткиИОбороты
|ЛЕВОЕ СОЕДИНЕНИЕ
| РабочаяДатаВзаиморасчетыОстаткиИОбороты КАК РабочаяДатаВзаиморасчетыОстаткиИОбороты
|ПО
| РабочаяДатаВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом = ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон,, ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА) КАК РегВзаиморасчеты_БезДокументовОборот
| ПО ВзаиморасчетыОстаткиИОбороты.Организация = РегВзаиморасчеты_БезДокументовОборот.Организация И
| ВзаиморасчетыОстаткиИОбороты.Контрагент = РегВзаиморасчеты_БезДокументовОборот.Контрагент И
| ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента = РегВзаиморасчеты_БезДокументовОборот.ДоговорКонтрагента И
| ВзаиморасчетыОстаткиИОбороты.Сделка = РегВзаиморасчеты_БезДокументовОборот.Сделка}
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКонца, ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА) КАК РегВзаиморасчеты_БезДокументовКонечныйОстаток
| ПО ВзаиморасчетыОстаткиИОбороты.Организация = РегВзаиморасчеты_БезДокументовКонечныйОстаток.Организация И
| ВзаиморасчетыОстаткиИОбороты.Контрагент = РегВзаиморасчеты_БезДокументовКонечныйОстаток.Контрагент И
| ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента = РегВзаиморасчеты_БезДокументовКонечныйОстаток.ДоговорКонтрагента И
| ВзаиморасчетыОстаткиИОбороты.Сделка = РегВзаиморасчеты_БезДокументовКонечныйОстаток.Сделка}
|//СОЕДИНЕНИЯ
|ГДЕ ВзаиморасчетыОстаткиИОбороты.УпрУчет = ИСТИНА
|
|{ГДЕ
|ВзаиморасчетыОстаткиИОбороты.Период,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход
| КОНЕЦ КАК Отгрузка,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход
| КОНЕЦ КАК Оплата,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрПриход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход
| КОНЕЦ
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрРасход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход
| КОНЕЦ
| КОНЕЦ КАК ОтгрузкаУпр,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрРасход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход
| КОНЕЦ
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрПриход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход
| КОНЕЦ
| КОНЕЦ КАК ОплатаУпр,
| &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
| КАК ДолгКонтрагента,
| &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаВзаиморасчетовОстаток = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаУпрОстаток /
| РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаВзаиморасчетовОстаток
| КОНЕЦ КАК ДолгКонтрагентаУпр,
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата КАК ДатаОтгрузки,
| ВЫБОР КОГДА &СпособКонтроляДнейЗадолженности = ЗНАЧЕНИЕ(Перечисление.СпособыКонтроляДнейЗадолженности.ПоРабочимДням)
| ТОГДА ЕСТЬNULL(РабочаяДатаВзаиморасчетыОстаткиИОбороты.ДатаКалендаря, ДАТАВРЕМЯ(0001,01,01,00,00,00))
| ИНАЧЕ ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности)
| КОНЕЦ КАК Срок
| //УСЛОВИЯ_СВОЙСТВА
| //УСЛОВИЯ_КАТЕГОРИИ
|}
|{УПОРЯДОЧИТЬ ПО
| Организация.* КАК Организация,
| Контрагент.* КАК Контрагент,
| ДоговорКонтрагента.* КАК ДоговорКонтрагента,
| ДокументРасчетовСКонтрагентом.* КАК ДокументРасчетовСКонтрагентом,
| Период КАК Период,
| Регистратор.* КАК Регистратор,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход
| КОНЕЦ КАК Отгрузка,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход
| КОНЕЦ КАК Оплата,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрПриход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход
| КОНЕЦ
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрРасход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход
| КОНЕЦ
| КОНЕЦ КАК ОтгрузкаУпр,
| ВЫБОР КОГДА &Предоставленные=1 ТОГДА
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрРасход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовРасход
| КОНЕЦ
| ИНАЧЕ
| ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовОборот.СуммаУпрПриход /
| РегВзаиморасчеты_БезДокументовОборот.СуммаВзаиморасчетовПриход
| КОНЕЦ
| КОНЕЦ КАК ОплатаУпр,
| &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
| КАК ДолгКонтрагента,
| &Предоставленные * ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток *
| ВЫБОР КОГДА РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаВзаиморасчетовОстаток = 0
| ТОГДА 0
| ИНАЧЕ РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаУпрОстаток /
| РегВзаиморасчеты_БезДокументовКонечныйОстаток.СуммаВзаиморасчетовОстаток
| КОНЕЦ КАК ДолгКонтрагентаУпр,
| ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата КАК ДатаОтгрузки,
| ВЫБОР КОГДА &СпособКонтроляДнейЗадолженности = ЗНАЧЕНИЕ(Перечисление.СпособыКонтроляДнейЗадолженности.ПоРабочимДням)
| ТОГДА ЕСТЬNULL(РабочаяДатаВзаиморасчетыОстаткиИОбороты.ДатаКалендаря, ДАТАВРЕМЯ(0001,01,01,00,00,00))
| ИНАЧЕ ДОБАВИТЬКДАТЕ(ВзаиморасчетыОстаткиИОбороты.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыОстаткиИОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности)
| КОНЕЦ КАК Срок
| //ПСЕВДОНИМЫ_СВОЙСТВА
| //ПСЕВДОНИМЫ_КАТЕГОРИИ
|}
|ИТОГИ
| СУММА(Отгрузка),
| СУММА(Оплата),
| СУММА(ОтгрузкаУпр),
| СУММА(ОплатаУпр),
| СУММА(ДолгКонтрагента),
| СУММА(ДолгКонтрагентаУпр),
| МИНИМУМ(ЧислоДней),
| МИНИМУМ(Срок)
| //ИТОГИ_СВОЙСТВА
| //ИТОГИ_КАТЕГОРИИ
|ПО
| ОБЩИЕ
|{
|ИТОГИ ПО
| Организация,
| Контрагент,
| ДоговорКонтрагента,
| ДокументРасчетовСКонтрагентом
| //ПСЕВДОНИМЫ_СВОЙСТВА
| //ПСЕВДОНИМЫ_КАТЕГОРИИ
|}
|";
Ответ:
В данном отчете меня особенно интересует часть касаемо "Кредиторской задолженности".
Сами по себе счета-фактуры полученные ни каких движений не делают.
В движениях документа Поступления, так же не нашел ни чего похожего.
При попытке объединить непосредственно с "Счет-фактура полученный" программа просто зависает (даже с установкой периода и "прорядить")
Нужен какой-то другой вариант.
По прежнему пытаюсь решить данную проблему Одним запросом.
Вопрос: Как дополнить запрос ?)

Подскажите по запросу плиз:

Нужно чтобы из регистра накопления Продажи попали все строки по документам "Реализация товаров и услуг" с условием отбора "ОтгрузкаБезПерехода = НЕТ" и
"Возврат товаров от покупателя". 

Запрос привожу ниже:



ВЫБРАТЬ
                Продажи.Период,
                Продажи.Регистратор,
                Продажи.ЗаказПокупателя,
                Продажи.ДоговорКонтрагента,
                Продажи.Проект,
                Продажи.Контрагент,
                "ИНН_" + Продажи.Контрагент.ИНН КАК Контрагент_ИНН,
                СУММА(Продажи.Стоимость) КАК Стоимость
ИЗ
                РегистрНакопления.Продажи КАК Продажи
ГДЕ
                Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон
                И ВЫРАЗИТЬ(Продажи.Регистратор КАК Документ.РеализацияТоваровУслуг).ОтгрузкаБезПерехода = &ОтгрузкаБезПерехода_ОТБОР

СГРУППИРОВАТЬ ПО
                Продажи.Период,
                Продажи.Регистратор,
                Продажи.ЗаказПокупателя,
                Продажи.ДоговорКонтрагента,
                Продажи.Проект,
                Продажи.Контрагент,
                "ИНН_" + Продажи.Контрагент.ИНН
Ответ: () - а можно подробнее привести текст запроса...не догоняю что то
Вопрос: (1С УТ 10.3) Как в запросе получить из виртуальной таблице поле регистратора?

Здравствуйте! Подскажите, как правильно сделать и возможно ли такое.

У регистра ПартииТоваровНаСкладах есть виртуальная таблица ПартииТоваровНаСкладахОстаткиИОбороты

Из неё я получаю все нужные данные таким запросом:

ВЫБРАТЬ
	ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
	ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
	ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход
ИЗ
	РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(
			,
			,
			Регистратор,
			,
			Номенклатура = &Номенклатура
				И Склад = &Склад) КАК ПартииТоваровНаСкладахОстаткиИОбороты


ДокументОприходования у меня всегда Поступление товаров и услуг. Как дополнить запрос, чтобы получить еще и кол-во из поступления (ДокументОприходования) для данной номенклатуры.
Ответ:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования КАК ДокументОприходования,
	ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
	ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход
ПОМЕСТИТЬ втДанные
ИЗ
	РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(
			&НачалоПериода,
			&ОкончаниеПериода,
			Регистратор,
			,
			Номенклатура = &Номенклатура
				И Склад = &Склад) КАК ПартииТоваровНаСкладахОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	втДанные.ДокументОприходования КАК ДокументОприходования,
	СУММА(втДанные.КоличествоПриход) КАК КоличествоПриход,
	СУММА(втДанные.СтоимостьПриход) КАК СтоимостьПриход,
	СУММА(ПТиУ_Товары.Количество) КАК ПТиУ_Количество,
	СУММА(ПТиУ_Товары.Сумма) КАК ПТиУ_Сумма,
	ПТиУ_Товары.Цена КАК ПТиУ_Цена
ИЗ
	втДанные КАК втДанные
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПТиУ_Товары
		ПО втДанные.ДокументОприходования = ПТиУ_Товары.Ссылка
ГДЕ
	ПТиУ_Товары.Ссылка В
			(ВЫБРАТЬ
				втДанные.ДокументОприходования
			ИЗ
				втДанные КАК втДанные)

СГРУППИРОВАТЬ ПО
	втДанные.ДокументОприходования,
	ПТиУ_Товары.Цена
Вопрос: Запрос на добавление параметров макета

Есть макет
Помогите с написанием запроса для него,нужно что бы из документа и его ТЧ вводились данные в макет!
1С 8.3 ЗУП, Пытался сам сделать по шаблону, но не получилось
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Функция ДанныеПечатиАкта(МассивОбъектов)
ТабДок = Новый ТабличныйДокумент; 
    Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_АктСдачиПриемкиВыполненныхРаботУслуг");
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
     |  ДоговорРаботыУслуги.Номер,
     |  ДоговорРаботыУслуги.Дата,
     |  ДоговорРаботыУслугиДоговора.ДатаНачала,
     |  ДоговорРаботыУслугиДоговора.ДатаОкончания,
     |  ДоговорРаботыУслуги.Организация.Наименование,
     |  ДоговорРаботыУслуги.Руководитель.Наименование,
     |  ДоговорРаботыУслуги.Должность.Наименование,
     |  ДоговорРаботыУслугиДоговора.СуммаЗаРаботу
     |  ВЫБРАТЬ
     |       |ИЗ
     |  Документ.ДоговорРаботыУслуги.Договора КАК ДоговорРаботыУслугиДоговора,
     |  Документ.ДоговорРаботыУслуги КАК ДоговорРаботыУслуги";
    
    Запрос.УстановитьПараметр("Номер",НомерДокумента);
    Запрос.УстановитьПараметр("Дата",  ДатаДокумента);
    Запрос.УстановитьПараметр("ДатаНачала",  ДатаДоговора);
 
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Пока Выборка.Следующий() Цикл
        ОбластьМакета.Параметры.Номер = Выборка.Номер;
        ОбластьМакета.Параметры.Дата = Выборка.Дата;
                ТабДок.Вывести(ОбластьМакета);    
    КонецЦикла;    
    ТабДок.Показать();
КонецФункции
Ответ:
Сообщение от Vozminaruchki
| ВЫБРАТЬ
| |ИЗ
| Документ.ДоговорРаботыУслуги.Договора КАК ДоговорРаботыУслугиДоговора,
Здесь лишний оператор ВЫБРАТЬ и лишний символ | перед ИЗ. Уже не будет работать.


Сообщение от Vozminaruchki
Запрос.УстановитьПараметр("Номер",НомерДокумента);
Запрос.УстановитьПараметр("Дата", ДатаДокумента);
Запрос.УстановитьПараметр("ДатаНачала", ДатаДоговора);
Зачем устанавливать параметры, если они не используются в запросе?

Попробуем так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Запрос = Новый Запрос;
 Запрос.Текст = "ВЫБРАТЬ
 | ДоговорРаботыУслуги.Номер,
 | ДоговорРаботыУслуги.Дата,
 | ДоговорРаботыУслугиДоговора.ДатаНачала,
 | ДоговорРаботыУслугиДоговора.ДатаОкончания,
 | ДоговорРаботыУслуги.Организация.Наименование,
 | ДоговорРаботыУслуги.Руководитель.Наименование,
 | ДоговорРаботыУслуги.Должность.Наименование,
 | ДоговорРаботыУслугиДоговора.СуммаЗаРаботу
 | ИЗ
 | Документ.ДоговорРаботыУслуги.Договора КАК ДоговорРаботыУслугиДоговора,
 | Документ.ДоговорРаботыУслуги КАК ДоговорРаботыУслуги
 |ГДЕ
 | ДоговорРаботыУслуги.Номер = &Номер,
 | ДоговорРаботыУслуги.Дата = &Дата,
 | ДоговорРаботыУслугиДоговора.ДатаНачала = &ДатаНачала";
Запрос.УстановитьПараметр("Номер",НомерДокумента);
 Запрос.УстановитьПараметр("Дата", ДатаДокумента);
 Запрос.УстановитьПараметр("ДатаНачала", ДатаДоговора);
Результат = Запрос.Выполнить();
 Выборка = Результат.Выбрать();
Вопрос: Пустая выборка результата запроса по ценам номенклатуры

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

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Функция ЗакупочнаяЦена(АктуальнаяДата,ЭлементНоменклатуры, ТипыЦен) Экспорт
    
 
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ТипыЦенНоменклатуры.БазовыйТипЦены КАК БазовыйТипЦены
               |ИЗ
               |    Справочник.ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры
               |ГДЕ
               |    ТипыЦенНоменклатуры.Наименование = &ТипыЦен";
Запрос.УстановитьПараметр("ТипыЦен", ТипыЦен);
 
РезультатЗапроса = Запрос.Выполнить();  
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ТипыЦен = "";
Сообщить(ВыборкаДетальныеЗаписи.Количество());
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
  ТипыЦен = ВыборкаДетальныеЗаписи.ТипыЦен;
  Сообщить(ТипыЦен);
КонецЦикла;  
    
    
 
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("АктуальнаяДата",АктуальнаяДата);
Запрос.УстановитьПараметр("Номенклатура", ЭлементНоменклатуры);
Запрос.УстановитьПараметр("ТипыЦен", ТипыЦен);
Запрос.Текст = "ВЫБРАТЬ
               |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
               |ИЗ
               |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
               |            &АктуальнаяДата,
               |            ТипыЦен = &ТипыЦен
               |                И Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних";
 
РезультатЗапроса = Запрос.Выполнить();  
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Цена = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
  Цена = ВыборкаДетальныеЗаписи.Цена;
КонецЦикла;
Сообщить(Цена);
Возврат Цена;
 
 
 
КонецФункции
Добавлено через 4 минуты
Причем в консоле запросов отрабатывает запрос по базовой цене нормально. Пишу в параметр - розничная, результат - закупочная

Добавлено через 30 минут
ОТБОЙ ТРЕВОГИ))) наименование и ссылка попутаны. ну и так в выборке уже вижу не то написала - надо базовые.

__
тихо сам с собой...)))
Ответ: первый запрос, проснувшись, смеясь над собой, поменяла на:

1C
1
2
3
4
Если ПолучитьЗначениеРеквизита(ТипыЦен,"Признак") =  ПредопределенноеЗначение("Перечисление.ПризнакЦены.Продажа")
        Тогда  
    ТипыЦен = ПолучитьЗначениеРеквизита(ТипыЦен,"БазовыйТипЦены");
    КонецЕсли;
всё!))))))))))))
Вопрос: Разобраться с запросом

Создал файл внешней обработки, там конструктором запросов создал запрос, но при запуске в предприятии, записей нет, почему?
Кликните здесь для просмотра всего текста
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//*******************************************
// Процедура генерации запроса Сформировать_запр.
//
Процедура Сформировать_запр()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать_запр)
    |Код = Справочник.Контрагенты.Код;
    |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент;
    |Наименование = Справочник.Контрагенты.Наименование;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
 
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать_запр");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать_запр", "");
КонецПроцедуры
Ответ: спасибо, просто не могу найти метод разбора запросов, есть запрос он выводит спорные данные, и хотелось бы знать, какие записи попали в результат выборки...
Т.е. вначале хотелось бы сделать аналог запроса в цикле, и вот цикл уже легче разбирать по записям....
Вопрос: Заполнение ТЧ одного документа ТЧ другого, заполнение тч из запроса

Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
&НаСервере
Процедура ЗаполнитьНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ТоварнаяНакладная.Ссылка
    |ИЗ
    |   Документ.ТоварнаяНакладная КАК ТоварнаяНакладная
    |ГДЕ
    |   ТоварнаяНакладная.Ссылка = &МассаБрутто";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
         НоваяСтрока = ОбъектМассаБрутто.Добавить();
         НоваяСтрока.МассаБрутто = Выборка.МассаБрутто;
    КонецЦикла;
    
КонецПроцедуры
 
&НаКлиенте
Процедура Заполнить(Команда)
        ЭтаФорма.Записать();
        ЗаполнитьНаСервере();
    КонецПроцедуры
Есть док ТоварнаяНакладная в нем тчНакладная в ней МассаБрутто и МассаНетто
есть докНакладнаяНаОтпуск в нем тчТовар в ней МассаБрутто МассаНетто
нужно организовать запрос на выбор массы и из запроса заполнить поля накладной
Ответ:
Сообщение от duk337
В разделе даже есть отдельная тема про литературу.
Далее.
Надо смотреть методы тч. Осознать, где док.приёмник, где док.источник. Какие реквы у них в тч.
Вы же тыкаете пальцем в небо, хотя осознаёте, что ВАШИ объекты и их структура для нас тайна.
Если с запросом не выходит - делайте просто циклом по тч источника. Прочухайте, где объект, а где ссылка.
я много читал и закипел уже помоги...чуть что не правильно?
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
&НаСервере
Процедура ЗаполнитьТД(Масса)
Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
                  | ТоварнаяНакладнаяНакладная.МассаБрутто КАК МассаБрутто,
                  | ТоварнаяНакладнаяНакладная.МассаНетто КАК МассаНетто,
                  | ТоварнаяНакладнаяНакладная.Товар.Наименование
                  |ИЗ
                  | Документ.ТоварнаяНакладная.Накладная КАК ТоварнаяНакладнаяНакладная"; 
                  
                РезультатЗапроса = Запрос.Выполнить();
                Масса = РезультатЗапроса.Выгрузить();
    Запрос2 = Новый Запрос;
    Запрос2.Текст ="ВЫБРАТЬ
                   |    НакладнаяНаОтпускТовар.Наименование.Наименование КАК Наименование,
                   |    НакладнаяНаОтпускТовар.МассаБрутто,
                   |    НакладнаяНаОтпускТовар.МассаНетто
                   |ИЗ
                   |    Документ.НакладнаяНаОтпуск.Товар КАК НакладнаяНаОтпускТовар";
                  РезультатЗапроса = Запрос2.Выполнить();
 
                   
            Для Каждого Товар Из Масса Цикл
            //  НоваяСтрока = Товар.Добавить();
            //  НоваяСтрока.МассаБрутто = ТабЗнач.МассаБрутто;
            //  НоваяСтрока.МассаНетто = ТабЗнач.МассаНетто;
            ЗаполнитьЗначенияСвойств(Товар, Масса);
            КонецЦикла;
 
КонецПроцедуры
 
    
    
&НаКлиенте
Процедура ТоварНаименованиеПриИзменении(Элемент)
    СтрокаТабличнойЧасти=Элементы.Товар.ТекущиеДанные;
    СтрокаТабличнойЧасти.Цена=РаботаСоСправочниками.РозничнаяЦена
    (Объект.Дата,СтрокаТабличнойЧасти.Наименование);
    
    ЗаполнитьТД(СтрокаТабличнойЧасти.МассаБрутто);
        
    СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество
*СтрокаТабличнойЧасти.Цена;    
КонецПроцедуры
Вопрос: Вопрос по группировкам в запросе

При написании запроса возникла проблема с обходом по группировкам...после выполнения запроса видна только одна группировка, подскажите плз кто знает или помнит с чем это связано..может это просто глюк 7-ки при работе с запросами

сам запрос, сделанный через конструктор...
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Без итогов;
    |ПродажаСоСклада = Документ.ПродажаСоСклада.ТекущийДокумент;
    |Покупатель = Документ.ПродажаСоСклада.Покупатель;
    |Товар = Документ.ПродажаСоСклада.Товар;
    |Колво = Документ.ПродажаСоСклада.Колво;
    |СуммаСоСкидкой = Документ.ПродажаСоСклада.СуммаСоСкидкой;
    |Функция КолвоСумма = Сумма(Колво);
    |Функция ВсегоСумма = Сумма(СуммаСоСкидкой);
    |Группировка Покупатель;
    |Группировка Товар без упорядочивания без групп;        
    |"//}}ЗАПРОС

    ;
    // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;    
    
    Пока Запрос.Группировка() = 1 Цикл
        Таб.ВывестиСекцию("Покуп");
         Пока Запрос.Группировка() = 1 Цикл            
            Таб.ВывестиСекцию("Товар");    
        КонецЦикла;
    КонецЦикла;

так вот при выполнении не происходит обход по группировкам, хотя данные выбраны, но почему то 1с-ка видит только одну группировку по "Товар". Т.е. если я пишу Пока Запрос.Группировка() = 1 Цикл тогда все работает но у меня группировка идет только по товарам. При чем пытался другие виды группировок указать, например по документу, все равно видит только одну группировку по товару и все.
Помню давно еще возникала такая проблема, а вот как ее решали уже не помню:)..может выгружали запрос в таблицу и потом делали обход, а может есть какой нюанс.
Заранее благодарен
Ответ: () Спасибо большое, я уже и сам допер, посмотрев что может быть лишним в запросе и почитав что это может значить:)
Просто когда постоянно с чем то работаешь, то концентрация внимания выше на всякие мелочи и нюансы, а так забывается...
Вопрос: Обработка результата запроса. Очень нужен дельный совет

Добрый день дорогие форумчане))) !!!
Всех с наступившим новым годом!!!

Очень нужна любая помощь в следующем:

Есть задача по условию которой, при входе в систему, должна производиться проверка пользователя, является ли он администратором. Если является, то доп. проверки к этому пользователю не применяются. (Администратор - соответствующий булевский реквизит на форме элемента справочника "Пользователи"). Предполагал решить задачу след. образом:

Написать функцию которая будет сравнивать имя текущего пользователя с наименованиями элементов из справочника "Пользователи" у которых реквизит "Администратор" = Истина и если совпадение найдено, тогда возврат истина если нет ложь.

Попытался реализовать это следующим запросом:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Функция ПроверкаПользователяАдмин(ИмяПользователя)Экспорт
Запрос = Новый Запрос;
Запрос.Текст = 
"Выбрать
| Пользователи.Наименование
| ИЗ
| Справочник.Пользователи Как Пользователи
|Где
| Пользователи.Администратор = &Установлен";
Запрос.УстановитьПараметр("Установлен", Истина);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ИмяПользователя = ВыборкаДетальныеЗаписи.Наименование тогда
возврат истина
иначе
возврат ложь
КонецЕсли;
КонецЦикла;
 
КонецФункции
Но данная функция всегда возвращает ложь даже если имена пользователя совпадают.
Консолью запросов проверял, запрос отбирает всех нужных пользователей.
Проверял код отладкой, Выборка Детальные записи, содержит только 1-й элемент отбора т.е. если по результату запроса отбираются Администратор и Администратор1, то выборка хранит в себе только 1-е значение. Помогите пожалуйста заставить работать эту функцию.
За ранее безмерно благодарен!!!
Ответ:
Сообщение от enduromen
Поправить код нужно следующим образом:
Молодчик, начал думать!!!

Но к сожалению опять не в ту строну

Если уж и оставлять вариант с поиском по "Наименованию" то лучше пусть запрос сразу возвращение нужне значение без перебора массива
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Функция ПроверкаПользователяАдмин(ИмяПользователя) Экспорт
    
    ВозвращаемоеЗначение = Ложь;    
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Пользователи.Администратор КАК Флаг
        |ИЗ
        |   Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |   Пользователи.Наименование = &ИмяПользователя";
        
    Запрос.УстановитьПараметр("ИмяПользователя", ИмяПользователя);    
    
    Выборка = Запрос.Выполнить().Выбрать();
        
    Если Выборка.Следующий() Тогда
         ВозвращаемоеЗначение = Выборка.Флаг;
    КонецЕсли;
 
    Возврат ВозвращаемоеЗначение;
 
КонецФункции
Вопрос: из запроса в переменную

добрый день,
в 1с новичек
есть запрос

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

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

Функция ПечатьТОРГ12(ВыбДокумент)

    СведенияПоДокументу = алкРаботаСДиалогамиСервер.алкПолучитьСведенияПоШапкеДокументаНаСервере(ВыбДокумент);
           УстановитьПривилегированныйРежим(Истина);

    //Подготовим данные табличной части
    СведенияПоТабличнойЧасти =  алкРаботаСДиалогамиСервер.алкПолучитьСведенияПоТабличнойЧастиДокументаНаСервере(ВыбДокумент, ВыводитьСерии); 
 
    Если СведенияПоДокументу = Неопределено Или СведенияПоТабличнойЧасти = Неопределено Тогда
        Возврат Новый ТабличныйДокумент; 
    КонецЕсли;
 
    МетаданныеОбъекта = ВыбДокумент.Метаданные();

    НаименованиеТипаДок = МетаданныеОбъекта.Имя;

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_алкТорг12";
    Макет = ПолучитьМакет("ОсновнойМакет");
     
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   
      Если РежимВыводаПрефиксыДокументов = 0 Тогда
        УдалитьПрефиксИнформационнойБазы = Ложь;
        УдалитьПользовательскийПрефикс = Ложь;
    ИначеЕсли РежимВыводаПрефиксыДокументов = 1 Тогда
        УдалитьПрефиксИнформационнойБазы = Истина;
        УдалитьПользовательскийПрефикс = Ложь;
    ИначеЕсли РежимВыводаПрефиксыДокументов = 2 Тогда
        УдалитьПрефиксИнформационнойБазы = Ложь;
        УдалитьПользовательскийПрефикс = Истина;
    Иначе
        УдалитьПрефиксИнформационнойБазы = Истина;
        УдалитьПользовательскийПрефикс = Истина;
    КонецЕсли;
 
    СведенияПоДокументу.Вставить("НомерДокумента", алкОбщегоНазначенияСервер.ПолучитьНомерНаПечать(ВыбДокумент, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс));
    СведенияПоДокументу.Вставить("ОрганизацияПредставление", алкОписаниеОбъектаЛокально("Организация", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
    СведенияПоДокументу.Вставить("ПодразделениеПредставление", алкОписаниеОбъектаЛокально(, СведенияПоДокументу, "Склад,ГрузоотправительПунктПогрузкиАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
    Если АдресГрузополучателяИзПунктаРазгрузкиКонтрагента = Истина Тогда
        СведенияПоДокументу.Вставить("ГрузополучательПредставление" ,алкОписаниеОбъектаЛокально("Грузополучатель", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ПунктРазгрузкиАдрес,ПунктРазгрузкиТелефоны,НомерСчета,Банк,БИК,КоррСчет,"));
    Иначе
        СведенияПоДокументу.Вставить("ГрузополучательПредставление", алкОписаниеОбъектаЛокально("Грузополучатель", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ПунктРазгрузкиАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
    КонецЕсли;
       //Мой запрос для вставки
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СведенияПоДокументу.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
|РеализацияТоваровУслуг.алкПунктРазгрузки.КонтактнаяИнформация.(Представление) КАК Представление
|ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
    ВыборкаЗапроса = РезультатЗапроса.Выбрать();
    ВыборкаЗапроса.Следующий();
    НеобходимаяПеременная = ВыборкаЗапроса.Представление;
Иначе
    НеобходимаяПеременная = "";
КонецЕсли;
       
                //  ОбластьМакета.Параметры.Адресдоставки=НеобходимаяПеременная;

    СведенияПоДокументу.Вставить("Адресдоставки", НеобходимаяПеременная);
    //вот нужно вставить сюда
    СведенияПоДокументу.Вставить("ПоставщикПредставление", алкОписаниеОбъектаЛокально("Организация", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
    СведенияПоДокументу.Вставить("ПлательщикПредставление", алкОписаниеОбъектаЛокально("Контрагент", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
 
    Если ПорядокЗаполненияОснованияДокумента = 0 Тогда
        ОсновнойПорядокРасчетов = СведенияПоДокументу.ДоговорКонтрагентаВедениеВзаиморасчетов;
        ДополнительныйПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
    ИначеЕсли ПорядокЗаполненияОснованияДокумента = 1 Тогда
        ОсновнойПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
        ДополнительныйПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов;
    ИначеЕсли ПорядокЗаполненияОснованияДокумента = 2 Тогда
        ОсновнойПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов;
        ДополнительныйПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
    КонецЕсли;
 
    СтруктураОснования = ПолучитьДанныеОснования(СведенияПоДокументу, ОсновнойПорядокРасчетов, НаименованиеТипаДок, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
    Если Не ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
        СтруктураОснования = ПолучитьДанныеОснования(СведенияПоДокументу, ДополнительныйПорядокРасчетов, НаименованиеТипаДок, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
    КонецЕсли;

    ОбластьМакета.Параметры.Заполнить(СведенияПоДокументу);
    ОбластьМакета.Параметры.Заполнить(СтруктураОснования);
 
    ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = "71100";
    ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = ОбластьМакета.Параметры.НомерДокумента;
    ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата  = ОбластьМакета.Параметры.ДатаДокумента;

    // Заполним переменные макет данными из Дополнительных параметров
    Если ДополнительныеПараметры <> Неопределено И ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
        ОбластьМакета.Параметры.Заполнить(ДополнительныеПараметры);
    КонецЕсли;

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

    НомерСтраницы   = 1;

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

    КоличествоСтрок = СведенияПоТабличнойЧасти.Количество();

    // Инициализация итогов по странице.
    ИтогоКоличествоНаСтранице = 0;
    ИтогоСуммаНаСтранице      = 0;
    ИтогоНДСНаСтранице        = 0;
    ИтогоСуммаСНДСНаСтранице  = 0;
    ИтогоВесНаСтранице          = 0;
    ИтогоВесНеттоНаСтранице     = 0;
    ИтогоКоличествоМестНаСтранице = 0;

    // Инициализация итогов по документу.
    ИтогоКоличество = 0;
    ИтогоСуммаСНДС  = 0;
    ИтогоСумма = 0;
    ИтогоНДС   = 0;
    ИтогоВес        = 0;
    ИтогоВесНетто   = 0;
    ИтогоКоличествоМест = 0;
 
    Ном = 0;
 
    // Выводим многострочную часть докмента
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
    ОбластьВсего = Макет.ПолучитьОбласть("Всего");
    ОбластьПодвала = Макет.ПолучитьОбласть("Подвал");
 
    МассивВыводимыхОбластей = Новый Массив;
 
    Для НомерСтрокиВыборки = 1 По КоличествоСтрок Цикл
     
        ВыборкаСтрок =  СведенияПоТабличнойЧасти[НомерСтрокиВыборки];

        Если Не ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
            Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        Ном           = ВыборкаСтрок.НомерСтроки;
       
        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
        Если ЦенаВключаетНДС = Истина Тогда
            ОбластьМакета.Параметры.Цена = ?(ВыборкаСтрок.Количество = 0, 0, ВыборкаСтрок.СуммаБезНДС / ВыборкаСтрок.Количество);
        Иначе
            ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
        КонецЕсли;
     
        ОбластьМакета.Параметры.Номер = Ном;
        Если ВыводитьКодВидаАлкогольнойПродукцииВместоКода Тогда
            ОбластьМакета.Параметры.Код = ВыборкаСтрок.КодВидаАлкогольнойПродукции;
        КонецЕсли;
     
        // Количество мест и количество в однои месте округлим до целого
        КоличествоМест = ОкруглитьДоЦелого(ВыборкаСтрок.КоличествоМест);
        КоличествоВОдномМесте = ОкруглитьДоЦелого(ВыборкаСтрок.КоличествоВОдномМесте);
        ОбластьМакета.Параметры.КоличествоМест = КоличествоМест;
        ОбластьМакета.Параметры.КоличествоВОдномМесте = КоличествоВОдномМесте;
     
        // Увеличим итоги по документу.
        ИтогоКоличество = ИтогоКоличество + ВыборкаСтрок.Количество;
        ИтогоСумма      = ИтогоСумма      + ВыборкаСтрок.СуммаБезНДС;
        ИтогоНДС        = ИтогоНДС        + ВыборкаСтрок.СуммаНДС;
        ИтогоСуммаСНДС  = ИтогоСуммаСНДС  + ВыборкаСтрок.СуммаСНДС;
        ИтогоВес        = ИтогоВес            + ВыборкаСтрок.МассаБрутто;
        ИтогоВесНетто   = ИтогоВесНетто        + ВыборкаСтрок.МассаНетто;
        ИтогоКоличествоМест = ИтогоКоличествоМест + КоличествоМест;
     
        МассивВыводимыхОбластей.Очистить();
        МассивВыводимыхОбластей.Добавить(ОбластьМакета);
        МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
     
        // Увеличим количество, чтобы проверка проводилась по реальному количеству с возможными переносами.
        ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице + ВыборкаСтрок.Количество;
        ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице      = ИтогоСуммаНаСтранице      + ВыборкаСтрок.СуммаБезНДС;
        ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице        = ИтогоНДСНаСтранице        + ВыборкаСтрок.СуммаНДС;
        ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице  = ИтогоСуммаСНДСНаСтранице  + ВыборкаСтрок.СуммаСНДС;
        ОбластьИтоговПоСтранице.Параметры.ИтогоВесНаСтранице       = ИтогоВесНаСтранице        + ВыборкаСтрок.МассаБрутто;
        ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице + КоличествоМест;
     
        Если НомерСтрокиВыборки = КоличествоСтрок Тогда
         
            // Проверку вывода осуществляем по реальным данным с учётом переносов.
            МассивВыводимыхОбластей.Добавить(ОбластьВсего);
            МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
         
            // Область всего.
            ОбластьВсего.Параметры.ИтогКоличество = ИтогоКоличество;
            ОбластьВсего.Параметры.ИтогСуммы      = ИтогоСумма;
            ОбластьВсего.Параметры.ИтогНДС        = ИтогоНДС;
            ОбластьВсего.Параметры.ИтогСуммыСНДС  = ИтогоСуммаСНДС;
            ОбластьВсего.Параметры.ИтогоВес       = ИтогоВес;
            ОбластьВсего.Параметры.ИтогоКоличествоМест = ИтогоКоличествоМест;
         
            // Область подвала.
            ОбластьПодвала.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
            // Формируем строку для вывода количества листов накладной.
            // Слово лист склоняется.
            КоличествоЛистовВПриложении = НомерСтраницы + 1; //Плюс транспортный раздел
            Если (КоличествоЛистовВПриложении > 10) И (КоличествоЛистовВПриложении < 20) Тогда
                Слово = " листах";
            Иначе
                ПоследняяЦифра    = КоличествоЛистовВПриложении % 10;
                Если ПоследняяЦифра = 1 Тогда
                    Слово = " листе";
                Иначе
                    Слово = " листах";
                КонецЕсли;
            КонецЕсли;
            ОбластьПодвала.Параметры.КоличествоЛистовВПриложении    = Строка(КоличествоЛистовВПриложении) + Слово;
            ОбластьПодвала.Параметры.ВсегоМестПрописью    = ЧислоПрописью(ИтогоКоличествоМест, ,",,,,,,,,0");
         
            ЕдиницаИзмеренияВеса = алкОбщегоНазначенияПовтИсп.ПолучитьЗначениеКонстанты("ЕдиницаИзмеренияВеса");
            Если ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоВес > 0 Тогда
                ОбластьПодвала.Параметры.ИтогоВесПрописью = ЧислоПрописью(ИтогоВес, ,",,,,,,,,0")+ " " + СокрЛП(ЕдиницаИзмеренияВеса) + ".";
                ОбластьПодвала.Параметры.ИтогоВес = Формат(ИтогоВес, "ЧДЦ=0");
            КонецЕсли;
         
            Если ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоВесНетто > 0 Тогда
                ОбластьПодвала.Параметры.ИтогоВесНеттоПрописью = ЧислоПрописью(ИтогоВесНетто, ,",,,,,,,,0")+ " " + СокрЛП(ЕдиницаИзмеренияВеса) + ".";
                ОбластьПодвала.Параметры.ИтогоВесНетто = Формат(ИтогоВесНетто, "ЧДЦ=0");
            КонецЕсли;
         
            ОбластьПодвала.Параметры.СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(ИтогоСуммаСНДС, СведенияПоДокументу.ВалютаДокумента);
         
            ОбластьПодвала.Параметры.Заполнить(СведенияПоДокументу);
         
            ОбластьПодвала.Параметры.ГрузПринялДолжность = "";
            ОбластьПодвала.Параметры.ГрузПринялФамилия = "";
            ОбластьПодвала.Параметры.ГрузПолучилДолжность = "";
            ОбластьПодвала.Параметры.ГрузПолучилФамилия = "";
         
            // Заполним переменные макет данными из Дополнительных параметров.
            Если ДополнительныеПараметры <> Неопределено И ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
                ОбластьПодвала.Параметры.Заполнить(ДополнительныеПараметры);
            КонецЕсли;
         
        КонецЕсли;
     
        Если Не ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда

            ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице;
            ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице      = ИтогоСуммаНаСтранице;
            ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице        = ИтогоНДСНаСтранице;
            ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице  = ИтогоСуммаСНДСНаСтранице;
            ОбластьИтоговПоСтранице.Параметры.ИтогоВесНаСтранице       = ИтогоВесНаСтранице;
            ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице;
            ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
         
            // Очистим итоги по странице.
            ИтогоКоличествоНаСтранице = 0;
            ИтогоСуммаНаСтранице      = 0;
            ИтогоНДСНаСтранице        = 0;
            ИтогоСуммаСНДСНаСтранице  = 0;
            ИтогоВесНаСтранице          = 0;
            ИтогоВесНеттоНаСтранице     = 0;
            ИтогоКоличествоМестНаСтранице = 0;
         
            НомерСтраницы = НомерСтраницы + 1;
        //    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

            ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
            Если НомерСтраницы > 1 Тогда
              ЗаголовокТаблицы.Параметры.НомерСтраницы = "К накладной № " + СведенияПоДокументу.НомерДокумента + " от " + СведенияПоДокументу.ДатаДокумента +
                "        Страница " + НомерСтраницы;
            Иначе
                ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
            КонецЕсли; 
         
            ТабДокумент.Вывести(ЗаголовокТаблицы);

        КонецЕсли;     
     
        ТабДокумент.Вывести(ОбластьМакета);

        // Увеличим итоги по странице.
        ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице + ВыборкаСтрок.Количество;
        ИтогоСуммаНаСтранице      = ИтогоСуммаНаСтранице      + ВыборкаСтрок.СуммаБезНДС;
        ИтогоНДСНаСтранице        = ИтогоНДСНаСтранице        + ВыборкаСтрок.СуммаНДС;
        ИтогоСуммаСНДСНаСтранице  = ИтогоСуммаСНДСНаСтранице  + ВыборкаСтрок.СуммаСНДС;
        ИтогоВесНаСтранице        = ИтогоВесНаСтранице        + ВыборкаСтрок.МассаБрутто;
        ИтогоВесНеттоНаСтранице   = ИтогоВесНеттоНаСтранице + ВыборкаСтрок.МассаНетто;
        ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице + КоличествоМест;
         
    КонецЦикла;

    // Выводим итоги по последней странице.
    ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице      = ИтогоСуммаНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице        = ИтогоНДСНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице  = ИтогоСуммаСНДСНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогоВесНаСтранице       = ИтогоВесНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице;
    ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
 
    // Выводим итоги по документу в целом.
    ТабДокумент.Вывести(ОбластьВсего);
 
    // Формируем строку для вывода количества листов накладной.
    // Слово лист склоняется.
    КоличествоЛистовВПриложении = НомерСтраницы + 1; //Плюс транспортный раздел
    Если (КоличествоЛистовВПриложении > 10) И (КоличествоЛистовВПриложении < 20) Тогда
        Слово = " листах";
    Иначе
        ПоследняяЦифра    = КоличествоЛистовВПриложении % 10;
        Если ПоследняяЦифра = 1 Тогда
            Слово = " листе";
        Иначе
            Слово = " листах";
        КонецЕсли;
    КонецЕсли;
    ОбластьПодвала.Параметры.КоличествоЛистовВПриложении    = Строка(КоличествоЛистовВПриложении) + Слово;
 
    // Выводим подвал документа.
    ТабДокумент.Вывести(ОбластьПодвала);

    // Зададим параметры макета.
    ТабДокумент.ПолеСверху = 0;
    ТабДокумент.ПолеСлева  = 0;
    ТабДокумент.ПолеСнизу  = 0;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

    Возврат ТабДокумент;
КонецФункции // ПечатьТОРГ12()
ВыводитьСерии = Истина;

#КонецЕсли