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

печать ценников по количеству товара в накладной

Автор roxy, 03 мая 2011, 15:11

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

roxy

мой printcen.ert



Перем ПечФирма;

//******************************************************************************
// ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
//
// Параметры:
//  Таб             - таблица, в которую выполняется вывод ценника
//  ПечНаименование - наименование ТМЦ
//  ПечЕдиница      - единица измерения ТМЦ
//  ПечРозн         - цена ТМЦ
//  Столбик         - номер столбика.
//  Ряд             - номер ряда
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Добавляет ценник в таблицу.
//
Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд) Экспорт
      
   Столбик   = ?(Столбик = 0, 1      , 0  );
   Ряд      = ?(Столбик = 0, Ряд + 1, Ряд);

   Если Ряд > 3 Тогда
      Таб.НоваяСтраница();
      Ряд = 1;
   КонецЕсли;
   
   Если Столбик = 0 Тогда
      Таб.ВывестиСекцию("Товар|Ценник");
   Иначе
      Таб.ПрисоединитьСекцию("Товар|Ценник");
   КонецЕсли;

КонецПроцедуры // ДобавитьЦенник()

//******************************************************************************
// Печать(Докум, Устройство=0, КолвоКопий=1)
//
// Параметры:
//  Докум      - контекст выводимого документа (ПереоценкаРозница, ПоступлениеТМЦРозница),
//  Устройство - если 0, то вывод на экран, иначе - на принтер,
//               необязателен, по умолчанию - на экран,
//  КолвоКопий - количество копий, по умолчанию - 1.
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Формирует таблицу с ценниками.
//
Процедура Печать(Докум, Устройство=0, КолвоКопий=1)
   
   ДокумВид = Докум.Вид();
   Если ДокумВид = "ПереоценкаРозница" Тогда
      ИдРознЦена = "ЦенаНовая";
   ИначеЕсли ДокумВид = "ПоступлениеТМЦРозница" Тогда
      ИдРознЦена = "РозничнаяЦена";
   ИначеЕсли ДокумВид = "ПеремещениеТМЦ" Тогда
      Если Докум.СкладПолучатель.РозничныйСклад = 1 Тогда
         ИдРознЦена = "Цена";
      Иначе
         Предупреждение("Нельзя печатать ценники при перемещении
                        |ТМЦ на оптовый склад!", 60);
         Возврат;   
      КонецЕсли;
   Иначе
      Возврат;   
   КонецЕсли;
   
   //  Создание Таблицы для выходного отчета
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   
   ПечФирма = СокрЛП(Докум.Фирма.ЮрЛицо.ПолнНаименование);
   
   Столбик = 1;
   Ряд     = 0;
   
   Докум.ВыбратьСтроки();
   Пока Докум.ПолучитьСтроку() = 1 Цикл
      Если ДокумВид = "ПереоценкаРозница" Тогда // пропускаем ТМЦ, где цена не менялась
          Если Докум.ЦенаСтарая = Докум.ЦенаНовая Тогда
             Продолжить;   
          КонецЕсли;
      КонецЕсли;
       ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);
      ПечРозн    = глФРМ(ВремЦена, глРубли); // печатаем по розничным ценам - поэтому глРубли
      ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "");
        
      // вставила    для нц = 1 по Докум.Количество  Цикл
      
      ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд);
      глОживить(1);
      //    вставила КонецЦикла;
      
   КонецЦикла;
   
   Если Устройство = 0 Тогда
      Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
      Таб.ТолькоПросмотр(1);
      Таб.Показать("Товарные ценники","");
   Иначе     
      Таб.ПараметрыСтраницы(,,,,,,,,,1,,);
      Таб.КоличествоЭкземпляров(КолвоКопий);
      Таб.Напечатать(0);
   КонецЕсли;
   
КонецПроцедуры // Печать()

//******************************************************************************
// ПоКнопкеПечать()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога:
//  Кнопка "Печать"
//
// Описание:
//
Процедура ПоКнопкеПечать()
   
   Если Док.Выбран() = 0 Тогда
       Предупреждение("Не выбран документ!", 60);
      Возврат;
   КонецЕсли;
   
   Печать(Док);
   
КонецПроцедуры // ПоКнопкеПечать()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
   
   Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
      
      Докум      = Форма.Параметр.Получить("Контекст");
      Устройство = Форма.Параметр.Получить("Устройство");
      КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");
   
      Печать(Докум, Устройство, КолвоКопий);
      Статусвозврата(0);
      Возврат;
   КонецЕсли;
   
КонецПроцедуры // ПриОткрытии()

prog1c7.7


zkolenko

Цитата: roxy от 07 мая 2011, 13:20
не выходит каменный цветок,

ругается: для нц = 1 по Докум.<<?>>Количество  Цикл
пишет что Ожидается Идентификатор


что делать?

Хотя я в восьмерке работаю но разве здесь ошибка не в том, что метод Количество используется без круглых скобок. Не так должно быть
для нц = 1 по Докум.Количество  Цикл
а вот так
для нц = 1 по Докум.Количество()  Цикл

roxy

Вот что пишет:
для нц = 1 по Докум.<<?>>Количество  Цикл
{C:\PROGRAM FILES (X86)\1CV77\ИП БУТЕНКО НОВАЯ!!!\EXTFORMS\PRNFORMS\PRINTCEN.ERT(93)}: Ожидается идентификатор

roxy

Все получилось!!!! :zebzdr:  :zebzdr: заменила свой printcen.ert Вашим

При сравнении у меня  (для нц = 1 по Докум.Количество Цикл
У Вас вот так   (для нц = 1 по Докум.Количество  Цикл   


Теги:

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

Рейтинг@Mail.ru

Поиск