7.7 Как распечатать ценник со страной производителем

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем fog, 20 апр 2008.

  1. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Полагаю, самый простой вариант - обновить ценник из типовой конфигурации. Процедура, аналогичная обновлению релиза.
  2. volodya1122
    Offline

    volodya1122 Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    96
    Симпатии:
    1
    Баллы:
    26
    Это пойдет если тот "умник" еще не лез в справочник "Номенклатура". Ведь для того чтобы добавить страну происхождения товара в ценник нужно еще и там кое что добавить...
  3. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не обязательно. Для того чтобы не "поганить" конфу. Делал подобную задачу через свойства номенклатуры
  4. href
    Offline

    href

    Регистрация:
    24 дек 2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток Вам. Есть необходимость печатать "код" товара в ценнике, для того что б в последующем быстро искать его при продаже, артикулов на товарах нет...

    Печатать ценники буду из прихода (меню Документ - Поставщики - Поступление в розницу (Купля-Продажа))

    Занимаюсь в 1С в роли администратора неделю, весь моск себе сломал... :(

    Куда и что не правильно поставлено, подскажите. Спасибо.

    Обработку привел полностью, извините если что не так...

    помечено "// добавил" - то что дописал сам

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

    добавил в Таблице "ПечКод"

    Ругается на PRINTCEN.ERT(93)}: Переменная не определена (ТаблицаТоваров), пробовал Докум.Номенклатура.Код в этом случае ни на что не ругается, но ничего и не выводит... помогите плз, СПАСИБО.
  5. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Замените в вашем коде
    Код:
    ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "");
    
    
    
    на

    Код:
    ПечНаименованиеТМЦ = "("+СокрЛП(Докум.Номенклатура.Код)+") "+СокрЛП(Докум.Номенклатура.ПолнНаименование);
    
    
    
    Если нужно код выводить отдельно - только править макет.
  6. href
    Offline

    href

    Регистрация:
    24 дек 2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Спасибо, действительно, всё получимлось, единственное но... поменял то чтобыло на
    ПечКод = Докум.Номенклатура.Код;

    и... увы печатает "код" до названия... можно как нибудь его в правый угол, ну или после названия следующей строкой и шрифтом немного поменьше...

    Спасибо Тебе умная голова!!! :)

    не разобрался, как править макет :((
  7. href
    Offline

    href

    Регистрация:
    24 дек 2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    покопался немного, сделал так
    ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + РазделительСтрок + " Код: "+(+СокрЛП(Докум.Номенклатура.Код));

    ПечКод = Докум.Номенклатура.Код;

    надеюсь заказчика так устроит, спасибо
    тем не менее, если не трудно, подскажите плиз как вставить код, ну например в правый нижний угол...
  8. href
    Offline

    href

    Регистрация:
    24 дек 2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Покопался, сделал всё как хотел, т.к. основывался на скачанной обработке (увы не помню откуда качал и не знаю кого благодарить) и ответе мудрого и главное правильно указывающего на ошибки человека "Бухгалтерский угодник" (за что ему огроменное спасибище!!!!) выкладываю то, что получилось.

    Спасибо Вам господа.

    Итак. 1С 7.7 Торговля и склад 9.2
    Ценник большой и малый + печать ценника со скидкой (всё в одной обработке)
    Печатает: Фирму, Наименование, цену руб за шт, КОД (в правом нижнем углу), дату печати(лев нижн) и подпись отв. лица.
    Печатает из:
    Перемещение ТМЦ
    Переоценка розница
    Поступление ТМЦ
    Поступление ТМЦ розница
    по разным фирмам, типам цен.

    для тех кто в танке, как и я, сильно начинающим, как печатать из прихода розница:
    1. копировать обработку(скачанный файл) в папку куда установлена программа ....\DB\ExtForms\PrnForms\
    2. заходим в программу 1сПредприятие, далее меню Сервис --- Регистрация внешних печатных форм
    3. Внешние печатные формы для: Документа, из списка ниже, нажимая на треугольник выбираем то что нам надо,в нашем случае Поступление ТМЦ (розница)
    4. Ниже есть кнопка "Изменить" ---"Внести в список", нажимаем на нее и выбираем то что копировали ....\DB\ExtForms\PrnForms\(скачанный файл)
    5. О счастье, в "Поступление в розницу" слево от кнопки "печать" есть треугольник, нажимаем туда и выбираем то что вносили в пункте 4.
    6. Говорим спасибо и радуемся :)

    Ах да, при печати, ставьте поля равными нулю, тогда все ценники будут печататься нормально, а не съезжать за поля... :)

    плюхался неделю, с нуля, до этого ни разу не писал обработки и не работал в 1С.

    Посвящается тем, кто столкнулся с аналогичной проблемой, в аналогичных условиях :)

    Вложения:

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