8.х УТ Ценники в УТ 8.х

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем Стас, 20 янв 2007.

  1. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое за чудную обработку.
    Люди добрые (смотрит на Senya) а подскажите как мне в этот ценник еще и штрихкод товара втулить? :unsure:
  2. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Господа! Почти написал, вернее собрал по частям со всего форума. Только вот одна загвоздка осталась. Как показывает отладка, не работает вот это запрос:
    Код:
    Запрос = Новый Запрос("
    |ВЫБРАТЬ 
    |	РегШтрихкоды.Владелец КАК Владелец,
    |	РегШтрихкоды.ШтрихКод КАК Штрихкод
    |ИЗ
    |	РегистрСведений.Штрихкоды КАК РегШтрихкоды
    |ГДЕ
    |	РегШтрихкоды.Владелец = &Владелец
    |");
    
    Запрос.УстановитьПараметр("Владелец", СсылкаНаОбъект);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.следующий();
    
    Если РезультатЗапроса.Пустой() Тогда
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.Следующий();
    Сообщить("Штрихкод не найден! Сгенерируйте штрихкод для номенклатуры:  " + СокрЛП(СсылкаНаОбъект) + """.");
    Отказ = Истина;
    КонецЕсли;
    
    КомпонентШК.Сообщение = Выборка.ШтрихКод;
    
    Помогите кто может. Готовую обработку выложу здесь, пусть все пользуются кому надо.
  3. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Что не работает - то? Только что в УПП 1.2.21 вызвал этот запрос и штрих код мне показался (какой надо). Или не работает вывод в 1С:Barcod? Так для вывода нужно ещё получать тип штрихкода. Что-то типа:
    Код:
    ЦенникОбласть.Рисунки.Штрихкод.Объект.ТипКода = Выборка.ТипКода;
    ЦенникОбласть.Рисунки.Штрихкод.Объект.Сообщение = Выборка.ШтрихКод;
    
    
    Рекомендую посмотреть как организован вывод штрихкода из обработки ПечатьЭтикеток.

    Вложения:

  4. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Спасибо, но у меня проблемма не в этом была. А в строке
    Код:
    Запрос.УстановитьПараметр("Владелец", СсылкаНаОбъект);
    
    СсылкаНаОбъект в реквизите ссылалается на СправочникСсылка.Номенклатура. Но почему-то по этой ссылке Номенклатура не была доступна. зделал так
    Код:
    Запрос.УстановитьПараметр("Владелец", Строкатаблицы.Номенклатура);
    
    Все заработало, но теперь проблема в другом. У нас по всем товарам ведется учет по характеристикам (ну там цвет, размер и. т.д.) соответственно штрих код присваивается каждому товару с разными характеристиками свой. Т.е. одинаковая номенклатура "трусы 426" 42 и 46 размера будет иметь разные штрихкоды. Штрихкоды я поприсваивал каждой характеристике отдельно, но вот эта обработка при выводе штрихкода, выводит на ВСЕ размеры один и тот же штрихкод, причем берет его из первой характеристики. Т.е. на Номенклатуру "трусы 426" 42 и 46 размера будет напечатан одинаковый штрихкод который соответствует номенклатуре "трусы 426" 42 размера.
    Как ето подедить? :unsure:
    P.S. если у кого-то не ведется учет по характеристикам, то вот пользуйтесь...а я дальше биться буду.

    Вложения:

  5. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Исправил Вашу обработку - для характеристик. По большому счету основное было сделано. Посмотрите в модуле обработки добавлена процедура ЗаполнениеШтрихкода(), которая вызывается из процедуры заполнения таблицы, ненужные строки я закомментировал в процедуре ПечатьЦенника. Вам останется по-моему самое муторное - подбирать размеры для печати и количество выводимых на страницу экземпляров.
    P.S. На будущее - сильно не рекомендуется вызывать запросы в цикле, в Вашем случае всё получается одним запросом.
    Успехов.

    Вложения:

  6. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Спасибо огромное, :unsure: к сожалению смогу посмотреть плод вашего труда только в понедельник и обязательно отпишусь. В любом случае спасибо за потраченное время.
    P.S. а этим "мутным" занятием как подбор размеров под этикетку я уже 2 дня занимаюсь, т.к. моя этикетка постоянно меняется.
  7. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    2 Senya
    Спасибо еще раз. Все хорошо, чуть подправил и работает. Как я понял вы добавили отдельную функцию, которая заполняет табличную часть "штрихкод" и при вызове функции Печать, штрихкоды в макет подставляются из табличной части. Все хорошо НО! Я с самого начала не сказал что я эту обработку хочу использовать вместе с ВПФ "ПечатьЦенников.epf"(которая выкладывалась выше) как я понял таким способом что наша обработка вызвается из этой ВПФ прикрепленной к "Перемещение товаров" и табличная часть нашей обработки формируется согласно списку товаров в документе "перемещение товаров". В общем так как вы описывали для triplexd выше. Так вот если наша обработка вызывается из ВПФ "ПечатьЦенников.epf", то заполнение в табличной части штрих кодов не осущевствляется, как следствие они на ценниках не печатаются :unsure:
    Я так понял что надо еще и ВПФ править чтобы она выгружала штрихкоды для нашей обработки?
  8. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    2 Senya
    Изыскания продолжаются! :)
    Вышел из ситуации тем что вашу функцию ЗаполнениеШтрихкода() перенес в модуль формы и зделал кнопкой. Т.е. ЗаполнениеШтрихкода(Кнопка) и прикрепил ее к кнопке на Форме. Теперь после вызова ВПФ вызывается наша обработка, заполняется табличная часть без штрихкодов (как и раньше) и при нажатии кнопки заполняется табличная часть штрихкодов. При вызове функции печать, штрихкоды подставляются в макет из уже заполненной табличной части.
    Понимаю что через известное заднее место сделал :unsure: интуитивно понимаю что функцию ЗаполнениеШтрихкода() надо как-то вызывать из ВПФ. Но пока не могу понять как это сделать.
  9. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Да также. Во внешней в функции печать() просто формируйте нужную Вам таблицу значений с нуждными штрихкодами из нужного документа да и передавайте в качестве нужного параметра.
    Пример для поступления товаров и услуг.

    Вложения:

  10. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Вот еще что не могу победить :unsure: В обработке по печати ценников (ценники.epf - выложенна выше) есть хорошая кнопка в меню "Заполнить" - "ЗаполнитьПоУстановленнымОтобрам". Если стоит флаг "только имеющиеся в наличии" и в отборах выбран нужный склад, то табличная часть заполняется исходя из остатков на выбранном складе. Но вот в чем неприятность: количество у всех товаров всегда = 0, т.е. номенклатурный ряд он правильно заполняет по остаткам, а вот количество нет.
    В функции обработки события нажатия кнопки пытался что-то сделать, но ничего не получилось. Чувствую нужно писать отдельную функцию с запросом заполнения количества и вызывать ее из функции обработки нажатия на кнопку. Рылся в модулях конфигурации, ничего похожего не нашел...
    Можете кто нить пример накидать плз как выводить кол-во остатка по складу в табличную часть?
  11. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Делать запрос и потом его выгружать в табличную часть. Таб=Запрос.Выполнить().Выгрузить();
  12. usr334
    Offline

    usr334

    Регистрация:
    7 апр 2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    +1 подскажите, на листе остается место еще под 1-2ряда


    и как изменить макет непосредственно во встроенной обработке? снимать все с поддержки только чтоб можно было сохранить исправления? так-то давно использую внешнюю отредактированную, но ее минут в том что ее нельзя использовать при печати ценников из документа поступления товаров и услуг, приходится туда подбором все всегда вбивать
  13. niklain-k
    Offline

    niklain-k

    Регистрация:
    27 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
  14. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    1.Ну просто исправьте ВПФ, что бы можно было заполнять из поступления. Посмотрите, где - то выше в этой ветке самолично приводил пример как раз для поступления.
    2.Посмотрите в каком-нибудь прикрепленном файле как задается количество колонок и строк при выводе на печать в зависимости от используемого макета. Если макет менять не нужно, тогда в функции Печать ценника ищите строки
    Код:
    				Если ТекСтолбец = 5 Тогда //здесь можно менять количество столбцов
    ТекСтрока  = ТекСтрока + 1;
    ТекСтолбец = 0;
    КонецЕсли;
    
    Если ТекСтрока = 3 Тогда  // здесь соответственно строк
    ТекСтрока = 0;
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    
    
    и экспериментируйте на здоровье.
  15. niklain-k
    Offline

    niklain-k

    Регистрация:
    27 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Спасибо за обработку (смотрю на 1С8,Senya) "Печать ценников со штрихкодом"! Использую для номенклатуры разные еденицы измерения(шт.Уп.Ящ)у каждой есть свой штрихкод.Попытался распечатать ценник для упаковки.А штрихкод туда попадает за штуку.Нельзя ли подправить?
  16. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Можно.
    Открываешь в конфигураторе обработку.
    Открываешь нужный макет. Добавляешь поле <ЕденицаИзмерения>
    Затем открывешь модуль объекта. Ищешь функцию и в ней строки:

    Код:
    Функция ПечатьЦенника() Экспорт
    .........
    Для Тмп = 1 По СтрокаТаблицы.Количество Цикл
    ОбластьЦенника.Параметры.Заполнить(СтрокаТаблицы);
    ОбластьЦенника.Параметры.НоменклатураНаименование        = СтрокаТаблицы.Номенклатура.НаименованиеПолное;
    ...........
    
    Перед точками вставляешь
    Код:
    ОбластьЦенника.Параметры.ЕденицаИзмерения	             = СтрокаТаблицы.ЕдиницаИзмерения;
    
    И пользуйся на здоровье.
  17. niklain-k
    Offline

    niklain-k

    Регистрация:
    27 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Так сделал.Единица измерения "уп" или "ящ" а штрихкод все равно от "шт" попадает в ценник.Хотя и "уп" и "ящ" имеют свои штрихкоды.......
  18. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    выложи полный код функции ПечатьЦенника()
    И интересно, причем тут единица измерения и штрихкод? Штрихкод имеет товар, дисконтная карта, а единица измерения не имеет штрихкода.
  19. niklain-k
    Offline

    niklain-k

    Регистрация:
    27 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Может тут нужно добавить?....
    Функция КнопкаЗаполнениеШтрихкода(Кнопка) Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Штрихкоды.Штрихкод,
    | Штрихкоды.ТипШтрихкода,
    | Штрихкоды.Владелец,
    | Штрихкоды.ХарактеристикаНоменклатуры
    |ИЗ
    | РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ
    | Штрихкоды.Владелец В(&Владелец)
    | ";
  20. niklain-k
    Offline

    niklain-k

    Регистрация:
    27 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    ...ну как же не имеет ....например:Сигареты-на пачке стоит один штрихкод.....на блоке другой штрихкод.....на ящике третий штрихкод.Товар один и тот же.....для него можно пользоваться разными еденицами измерения .У всех едениц есть коэфициент пересчета относительно базовой"шт" и у каждой свой штрихкод.

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