Имя: Пароль:
1C
Админ
Внешняя печатная форма ТН М-11
0 Елена-Тамара
 
24.10.13
13:38
Типовая конфигурация - <1C:Управление производственным предприятием>
Технологическая платформа 8.2.19.68, номер версии 1.3.44.1


Здравствуйте!

Создала внешнюю печатную форму «Требования-накладной» (на основании стандартной МХ-11):
Все получилось. Кроме поля «счет, субсчет» (в шапке).


//Запрос основных реквизитов ТН:

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

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();



//Запрос табличной части:

Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    Запрос.УстановитьПараметр("НачГраница", Новый Граница(СсылкаНаОбъект.Дата, ВидГраницы.Включая));

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

    ЗапросПоНоменклатуре = Запрос.Выполнить();


Подскажите, пожалуйста, уважаемые специалисты, в каком запросе лучше запомнить этот «счет, субсчет»? И как это сделать?
1 Елена-Тамара
 
24.10.13
16:02
(((((
2 Елена-Тамара
 
25.10.13
09:43
(((
3 NikVars
 
25.10.13
09:50
(0) А почему на фото в ЛК одна женщина?!
Где вторая?
4 Елена-Тамара
 
25.10.13
10:00
(3) они близнецы....

нет смысла второе фото размещать)))))
5 Artful Den
 
25.10.13
10:03
(0) В ТН все счета в табличной части - делайте выводы...
6 Елена-Тамара
 
25.10.13
10:08
(5) Сделала....Теоретически...

У меня с практикой туго. Помогите, пожалуйста....
7 Елена-Тамара
 
31.10.13
12:07
Изменила запрос табличной части:

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

    ЗапросПоНоменклатуре = Запрос.Выполнить();


Вывод области "шапка" такой:

// Вывод заголовка
    Макет = ПолучитьМакет(ИмяМакета);
    Область = Макет.ПолучитьОбласть("Шапка");
    Область.Параметры.Заголовок     = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Шапка.НомерДокумента);
    Область.Параметры.Комментарий     =   Строка(Шапка.КомментарийДокумента);
    Область.Параметры.Год  = Формат(Год(Шапка.ДатаДокумента),"ЧГ=0");

    Область.Параметры.Основание     =   Шапка.Основание;
    
    //
    Область.Параметры.Счет     =   ЗапросПоНоменклатуре.Счет1;
    
    //
    
    Область.Параметры.Заполнить(Шапка);


Выдает ошибку:

Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Счет1)


Подскажите, пожалуйста, уважаемые специалисты, как вывести этот самый счет?
8 Елена-Тамара
 
31.10.13
12:25
Причем, нужен счет затрат....

а не счет учета.....
9 anaed
 
31.10.13
12:46
(8) пригласите специалиста или ждите доброго самаритянина на мисте.

Вам нужно во вложенном запросе под именем ТребованиеНакладная выбрать СчетЗатрат, потом выбрать его в основном запросе. Затем вместо того чтобы обращаться к результатузапроса как к выборке, выгрузить в ТЗ, свернуть ТЗ по СчетЗатрат и получить счет из итоговой ТЗ. Это если по простому и без изысков.
10 Елена-Тамара
 
31.10.13
13:22
Нет возможности пригласить специалиста....

Помогите, пожалуйста...

Как должен выглядеть запрос на практике?
11 anaed
 
31.10.13
13:51
(10) я написал что вам нужно сделать, писать готовый код = лишать вас возможности для саморазвития.
12 Елена-Тамара
 
31.10.13
14:03
(11) может быть лишите на первый раз? (я новичок и с подобной ситуацией еще не сталкивалась)
13 anaed
 
31.10.13
14:07
(12)не лукавьте, это уже не первый раз. Если вы хотите научиться - читайте (9) и думайте. Либо зовите специалиста.
14 Елена-Тамара
 
31.10.13
15:53
(13) с подобной ситуацией - первый
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.