7.7 Печать ценников

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем apanfil, 19 янв 2015.

  1. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Весь вопрос КАК эта таблица формируется... В типовой конфе - передается строка (наименование)
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    У ТС передаёт СЗ, судя по коду
    Код:
    //******************************************************************************
    // Предопределенная процедура
    //
    Процедура ПриОткрытии()
      
        СтатусВозврата(0);
        ДанныеДляПечати = Форма.Параметр;
                    
        Если ТипЗначенияСтр(ДанныеДляПечати) <> "СписокЗначений" Тогда
            Возврат;
        КонецЕсли;
      
        ПечФирма       = ДанныеДляПечати.Получить("Фирма");
        ТаблицаТоваров = ДанныеДляПечати.Получить("Таблица");
      
        Сформировать(ТаблицаТоваров, ПечФирма);
      
    КонецПроцедуры // ПриОткрытии()
  3. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Так В СЗ входит ТЗ....
    Вот типовая процедура...
    Код:
    Процедура ДобавитьВтаблицу(Табл, Товар, ТипЦены)
        Перем ВремЦена, ВремЕдиница, ВремВалюта;
       
        Если глВернутьЦену(Товар, ТипЦены, РабочаяДата(), ВремЦена, ВремЕдиница, ВремВалюта) = 1 Тогда
            Табл.НоваяСтрока();
            Табл.Товар   = СокрЛП(Товар.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Товар.Артикул), ""); // ОБРАТИТЕ ВНИМАНИЕ
            Табл.Цена    = ВремЦена;
            Табл.Валюта  = ВремВалюта;
            Табл.Единица = ВремЕдиница;
        Иначе
            Сообщить("У товара """ + Товар.ПолнНаименование + """ отсутствует цена """ + ТипЦены + """");
        КонецЕсли;   
       
    КонецПроцедуры // ДобавитьВтаблицу()
               
    
    
    Процедура ПечатьЦенника()
        Перем ПечЕдиница, ПечНаименование, ПечРозн;
        Перем Таб;
         Перем Столбик;
         Перем Ряд;
         Перем Процент, ПорядокОкр;
        
         Перем ТабТМЦ, ДанныеДляПечати;
        
        Если Выбран() = 0 Тогда
            Предупреждение("Печать можно выполнять только для записанных номенклатурных позиций", 60);
            Возврат;
        КонецЕсли;
       
        ТипЦены    =    СоздатьОбъект("Справочник.ТипыЦен");
        Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда
            Возврат;
        КонецЕсли;
         ТипЦены    =    ТипЦены.ТекущийЭлемент();
       
        ТабТМЦ = СоздатьОбъект("ТаблицаЗначений");
        ТабТМЦ.НоваяКолонка("Товар");
        ТабТМЦ.НоваяКолонка("Цена","Число");
        ТабТМЦ.НоваяКолонка("Единица");
        ТабТМЦ.НоваяКолонка("Валюта");
       
        ВыбТМЦ = ТекущийЭлемент();
       
        ДобавитьВтаблицу(ТабТМЦ, ВыбТМЦ, ТипЦены);
       
        // упакуем данные в список
        ДанныеДляПечати = СоздатьОбъект("СписокЗначений");
        
        Фирма = СокрЛП(глЗначениеПоУмолчанию("ОсновнаяФирма").ЮрЛицо.ПолнНаименование);
        ДанныеДляПечати.ДобавитьЗначение(Фирма          , "Фирма");
        ДанныеДляПечати.ДобавитьЗначение(ТипЦены.Валюта , "Валюта");
        ДанныеДляПечати.ДобавитьЗначение(ТабТМЦ         , "Таблица");
       
        ОткрытьФормуМодально("Обработка.ПечатьЦенников", ДанныеДляПечати);
       
    КонецПроцедуры // ПечатьЦенника()
    
  4. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    375
    Баллы:
    104
    Это код из модуля Справочник.Номеклатура?

    Там ещё есть Обработка "ОбновлениеЦенИзДокумента"

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

    apanfil

    Регистрация:
    19 янв 2015
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Короче, потыкался, не проходит. Видимо не судьба, буду вручную вставлять. копипаст, если что придумаем отпишусь.
    Всем спасибо за внимание!
  6. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    куда ты потыкался?
    сделай как в 14 написано и всё получится
  7. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104

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