8.х Вывод документа «Заказ поставщику» в Макет. Конфигурация «Управление Торговлей 10,3»

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем J-F, 20 июл 2009.

  1. TopicStarter Overlay
    J-F
    Offline

    J-F Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, постараюсь объяснить внятно, что у меня не получается.
    У меня конфигурация Управление Торговлей 10.3.
    Так вот есть документ «Заказ поставщику» . При печати документа необходимо добавить 2 дополнительных поля. Ед.Вес и Общий Вес.
    В Макете я добавил эти поля. Теперь остается за малом для кого то :) Для меня сложно:) Добавить код.
    Вот в чем я разобрался.

    Вот запрос для вывода этого документа «Заказ Поставщику» в Макет.

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

    ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицы");
    Пока ВыборкаТоваров.Следующий() Цикл
    ОбластьМакета.Параметры.НомерСтроки = ВыборкаТоваров.НомерСтроки;
    ОбластьМакета.Параметры.Номенклатура = ВыборкаТоваров.Номеклатура;
    ОбластьМакета.Параметры.Склад = ВыборкаТоваров.Склад;
    ОбластьМакета.Параметры.Упаковок = ВыборкаТоваров.Упаковок;
    ОбластьМакета.Параметры.ВУпаковке = ВыборкаТоваров.ВУпаковке;
    ОбластьМакета.Параметры.БезУпаковки = ВыборкаТоваров.БезУпаковки;
    ОбластьМакета.Параметры.Количество = ВыборкаТоваров.Количество;
    ОбластьМакета.Параметры.Цена = ВыборкаТоваров.Цена;
    ОбластьМакета.Параметры.Сумма = ВыборкаТоваров.Сумма;
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;


    А сам документ заполняет поле «Вес» в табличной части «Товары», при выводе строки. Поле «Вес» не является реквизитом табличной части «Товары», а просто как бы вычисляемое поле.

    Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.Вес.ОтображатьТекст = Истина;
    ОформлениеСтроки.Ячейки.Вес.Текст = ДанныеСтроки.ЕдиницаИзмерения.Вес * ДанныеСтроки.Количество;

    Всем заранее спасибо!!!!
    Извините может за корявый вопрос. Просто в 1С, я новичок, пришлось столкнуться по работе.
  2. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ну так модернизируй запрос, чтобы новое поле "вес" в нем вычислялось так же... В чем проблема?
  3. TopicStarter Overlay
    J-F
    Offline

    J-F Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    26
    В начале я также подумал, но поле «Вес» в табличной части "Товары" не является реквизитом.
    Каждый раз заполняется при открытии документа.

    Заполняется Вот этой процедурой.

    Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.Вес.ОтображатьТекст = Истина;
    ОформлениеСтроки.Ячейки.Вес.Текст = ДанныеСтроки.ЕдиницаИзмерения.Вес * ДанныеСтроки.Количество;


    Вот я и встрял..
  4. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Ну и добавь в запрос строчку. Что-то типа:
    Код:
    Запрос.Текст = "
    |ВЫБРАТЬ
    | Док.НомерСтроки,
    | Док.Склад,
    | Док.Номенклатура.Представление КАК Номеклатура,
    | Док.Упаковок,
    | Док.ВУпаковке,
    | Док.БезУпаковки,
    | Док.Количество,
    | Док.Цена,
    | Док.Сумма
    // это добавили
    | Док.Номенклатура.ЕдиницаХраненияОстатков.Вес * Док.Количество КАК Вес
    // или такую (зависит от документа)
    | Док.ЕдиницаИзмерения * Док.Количество КАК Вес
    |ИЗ
    | Документ.ЗаказПоставщику.Товары КАК Док
    |ГДЕ
    | Док.Ссылка = &ТекущийДокумент";
    
    Не совсем корректно (надо бы проверить на NULL) но это уже самостоятельно, иначе не запомнится.
    Успехов.
  5. TopicStarter Overlay
    J-F
    Offline

    J-F Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    26
    Senya, Вау....Спасибо Большущие...!!!!!!)))
    Заработало :)

    Не знал, что можно так делать))) А можешь что-то посоветовать, чтобы развиться в 1С?

    Насчет Null, нужно условие просто добавить на проверку ЕдиницаХраненияОстатков пустое или нет...?
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Код:
    |ВЫБОР КОГДА ЕСТЬNULL(Док.Номенклатура.ЕдиницаХраненияОстатков.Вес, 0) = 0 ТОГДА
    |	0
    |ИНАЧЕ
    |	Док.Номенклатура.ЕдиницаХраненияОстатков.Вес * Док.Количество
    |КОНЕЦ  КАК Вес
    
    

Поделиться этой страницей