7.7 ТиС. Подскажите как вставить в печать этикеток цену из справочника?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем pax, 29 окт 2009.

  1. TopicStarter Overlay
    pax
    Offline

    pax

    Регистрация:
    29 окт 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    В 1С чайник чайником.
    Подскажите, есть обработка в ТИСе ПечатьЭтикетки. Хочется что бы можно было добавить в печатную форму розничную цену из справочника либо фиксированную цену из справочника..
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Например в форме списка справочника Номенклатуры:
    Код:
    Процедура ПечатьЭтикетки()
    .....
    Табл.НоваяСтрока();
    Табл.Товар    = СокрЛП(ТекЭлем.Наименование)+" "+глПолучитьЦену(ТекЭлем, ТипЦены, ТекущаяДата;
    Табл.Штрихкод = Баркод;
    .....
    
    
  3. cm247
    Offline

    cm247

    Регистрация:
    10 фев 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    пожайлуста подскажите как вставить!. Куда?

    Код:
    Перем ОписаниеРезультата;
    
    //******************************************************************************
    // ТолькоЦифры(Стр)
    //
    // Параметры: 
    //  Стр - текстовая строка
    //
    // Возвращаемое значение:
    //  1 - если в строке только цифры, иначе 0
    //
    // Описание:
    //
    Функция ТолькоЦифры(Стр)
    Рез = 1;
    Для Сч = 1 По СтрДлина(Стр) Цикл
    Символ = Сред(Стр, Сч, 1);
    Если Найти("0123456789", Символ) = 0 Тогда
    Рез = 0;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    
    Возврат Рез;
    
    КонецФункции // ТолькоЦифры()
    
    //******************************************************************************
    // ПроверитьШтрихкод(Штрихкод)
    //
    // Параметры: 
    //  Штрихкод - штриховой код, который нужно проверить
    //
    // Возвращаемое значение:
    //  1 - штрихкод имеет верный формат, 0 - нет.
    //
    // Описание:
    //  Проеверяет штрихкод на соответствие кодировке EAN 13 и EAN 8.
    //
    Функция ПроверитьШтрихкод(Штрихкод)
    
    Штрихкод = СокрЛП(Штрихкод);
    ДлинаКода = СтрДлина(Штрихкод);
    Рез = 0;
    
    Если ТолькоЦифры(Штрихкод) = 1 Тогда
    // штрихкод должен состоять из цифр
    
    Если (ДлинаКода = 13) Тогда
    Если глКонтрольныйСимволEAN(Лев(Штрихкод,12), 13) = Прав(Штрихкод, 1) Тогда
    Рез = 1;
    КонецЕсли;
    ИначеЕсли (ДлинаКода = 8) Тогда
    Если глКонтрольныйСимволEAN(Лев(Штрихкод,7), 8) = Прав(Штрихкод, 1) Тогда
    Рез = 1;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    Возврат Рез;
    
    КонецФункции // ПроверитьШтрихкод()
    
    //******************************************************************************
    // Сформировать(Штрихкод, Устройство)
    //
    // Параметры: 
    //  ТаблицаТоваров - таблица значений, состоящая из колонок:
    //                   Товар - эл.справочника номенклатура или строка, 
    //                           наименование товара
    //                   Штрихкод - строка, штрихкод товара
    //  Устройство     - устройство, куда выводить этикетку.
    //                   "экран" - на экран, "принтер" - на принтер.
    //                   Значение по умолчанию - 0;
    //
    // Возвращаемое значение:
    //  1 - штрихкод имеет верный формат, 0 - нет.
    //
    // Описание:
    //  Выводит этикетку(и) на заданное устройство.
    //
    Процедура Сформировать(ТаблицаТоваров, Устройство)
    
    //  Создание Таблицы для выходного отчета
    Таб	= СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Этикетка");
    
    Если ТаблицаТоваров.КоличествоСтрок() = 1 Тогда
    ТаблицаТоваров.ПолучитьСтрокуПоНомеру(1);
    
    Если ПроверитьШтрихкод(ТаблицаТоваров.Штрихкод) = 0 Тогда
    Предупреждение("У товара """ + ТаблицаТоваров.Товар + """ штрихкод не задан или имеет неверный формат!");
    Возврат;
    Иначе
    Таб.ВывестиСекцию("ГорТелоВнутр|ВертТелоВнутр");
    КонецЕсли;
    
    Иначе
    ВсегоКолонок = 4;
    ВсегоСтрок   = 10;
    
    ТекКолонка = 1;
    ТекСтрока  = 1;
    
    ТаблицаТоваров.ВыбратьСтроки();
    Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
    Если ПроверитьШтрихкод(ТаблицаТоваров.Штрихкод) = 0 Тогда
    Сообщить("У товара """ + ТаблицаТоваров.Товар + """ штрихкод не задан или имеет неверный формат!");
    Иначе
    Если ТекКолонка > ВсегоКолонок Тогда
    ТекКолонка = 1;
    ТекСтрока  = ТекСтрока + 1;
    КонецЕсли;
    
    Если ТекСтрока > ВсегоСтрок Тогда
    ТекСтрока  = 1;
    Таб.НоваяСтраница();
    КонецЕсли;
    
    Если ТекКолонка = 1 Тогда
    Таб.ВывестиСекцию("ГорТело|ВертТело");
    Иначе
    Таб.ПрисоединитьСекцию("ГорТело|ВертТело");
    КонецЕсли;
    
    ТекКолонка  = ТекКолонка + 1;
    
    КонецЕсли;
    КонецЦикла;
    
    КонецЕсли;
    
    //Вызов выходного отчета в окно просмотра и редактирования.
    Таб.Опции(0, 0, 0, 0, "ПечатьЭтикетки", "ПечатьЭтикетки");
    Если Устройство="экран" Тогда
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Этикетка", "");
    Иначе
    Таб.Напечатать(0);
    КонецЕсли;
    
    КонецПроцедуры
    
    //******************************************************************************
    // Предопределенная процедура
    //
    Процедура ПриОткрытии()
    
    СтатусВозврата(0);
    
    // проверка наличия компоненты
    Попытка
    КомпонентABC = СоздатьОбъект("BARCODE.BarcodeCtrl.1");
    Исключение
    Предупреждение("Компонент ActiveBarcode не установлен на данном компьютере!" +
    РазделительСтрок +
    "Порядок установки компоненты ActiveBarcode описан в документации.");
    Возврат;
    КонецПопытки;
    
    Если ТипЗначенияСтр(Форма.Параметр) <> "СписокЗначений" Тогда
    Возврат;
    КонецЕсли;
    
    Устройство = Форма.Параметр.Получить("Устройство");
    Если ПустоеЗначение(Устройство) = 1 Тогда
    Устройство = "экран";
    КонецЕсли;
    Сформировать(Форма.Параметр.Получить("ТаблицаТоваров"), Устройство);
    КонецПроцедуры // ПриОткрытии()
    
    
  4. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    "Для кого-то ctrl+V единственная возможность вставить" (с)

    А вот куда..... боюсь отвечать.

    От куда вообще этот код? Нельзя так просто что-то вставить куда-то.... а то получится что-то...
  5. cm247
    Offline

    cm247

    Регистрация:
    10 фев 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Код от сюда: обработка -> Процедура ПечатьЭтикетки()

    Для того чтобы розничная цена писалась на этикетке.

    Печатается штрих-код и наименование.
    ТиС 9.2 7.7

    Или есть способ способ проще?
  6. Master_Cifra
    Offline

    Master_Cifra

    Регистрация:
    29 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    В этом и вопрос - каким запросом вернуть значение цены из остатков по текущей номенклатуре
  7. Master_Cifra
    Offline

    Master_Cifra

    Регистрация:
    29 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Так кто нибудь подскажет как цену товара получить на этикетке?
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    глПолучитьЦену(Номенклатура, Тип, НаДату, Единица, Валюта)

    Функция возвращает цену номенклатуры в указанном типе цен Тип, на дату НаДату, за единицу измерения Единица, пересчитанную в валюту Валюта по курсу Курс
  9. Master_Cifra
    Offline

    Master_Cifra

    Регистрация:
    29 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    А эту функцию помещать в тело функции Процедура Сформировать(ТаблицаТоваров,ПечФирма) ?? или как?
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не совсем. В процедуру печати передается уже сформированная таблица. В ней нет ссылок на элементы спраовника. Только наименование (тип - строка). Т.о. изнутри этой обработки вы цену не получите. Нужно при формировании этой таблицы добавить в нее еще одну колонку с ценой
  11. Master_Cifra
    Offline

    Master_Cifra

    Регистрация:
    29 июл 2010
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Я добавил в обработку ПечатьЭтикеток:

    1.) Процедура ДобавитьЦенник(Таб, ПечРозн)
    2.) В тело Процедура Сформировать(ТаблицаТоваров, Устройство) в цикл Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл добавил ДобавитьЦенник(ПечРозн);
    3.) В макет добавил поле <ПечРозн>

    Выдает синтаксические ошибки:
    ДобавитьЦенник(ПечРозн<<?>>);
    {Обработка.ПечатьЭтикетки.Форма.Модуль(138)}: Переменная не определена (ПечРозн)
    ДобавитьЦенник(ПечРозн<<?>>);
    {Обработка.ПечатьЭтикетки.Форма.Модуль(138)}: Недостаточно фактических параметров
    При проверке модуля обнаружены синтаксические ошибки!

    как быть?
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Все не то и все не так....
    вы создали процедуру ДобавитьЦенник и определили у нее ДВА параметра. А передаете один. Не удивительно что 1с ругается..

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

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