Артикул в этикетке (1С:УТ 8.1)
02.10.2008
14:01
#1
Помогите, пожалуста.
Нужно, чтобы на этикетке ШК выводился артикул товара. Не могу разобраться как это сделать. Может кто-нибудь поможет?
Нужно, чтобы на этикетке ШК выводился артикул товара. Не могу разобраться как это сделать. Может кто-нибудь поможет?
03.10.2008
08:13
#2
"1) Сохранить обработку "ПечатьЭтикеток" во внешний файл.
2) Переименовать сохраненную обработку в "ПечатьЭтикетокМоя".
3) Заменить строку 387 в модуле формы на
ОбластьНоменклатура.Текст = СокрЛП(СтрокаИзСписка.Номенклатура) + СокрЛП(СтрокаИзСписка.Номенклатура.Артикул) + ФормированиеПечатныхФорм.ПредставлениеСерий(СтрокаИзСписка);
4) Сохранить эту обработку и занести ее во внешние (Сервис - Внешние печатные формы и обработки - Внешние обработки).
5) Применять по потребностям."
2) Переименовать сохраненную обработку в "ПечатьЭтикетокМоя".
3) Заменить строку 387 в модуле формы на
ОбластьНоменклатура.Текст = СокрЛП(СтрокаИзСписка.Номенклатура) + СокрЛП(СтрокаИзСписка.Номенклатура.Артикул) + ФормированиеПечатныхФорм.ПредставлениеСерий(СтрокаИзСписка);
4) Сохранить эту обработку и занести ее во внешние (Сервис - Внешние печатные формы и обработки - Внешние обработки).
5) Применять по потребностям."
03.10.2008
09:46
#3
Спасибо большое, все получилось. Первый раз так конкретно ответили на вопрос.
Еще передо мной стоит задача видризменить этикетку.
Этикетка должна выглядеть примерно так:
--------------------------------------------------------
Наименование группы товаров
Наименование товара
НазваниеХарактеристики1 - Характеристика1
НазваниеХарактеристики2 - Характеристика2
НазваниеХарактеристики3 - Характеристика3
НазваниеХарактеристики4 - Характеристика4
НазваниеХарактеристики5 - Характеристика5
--------------------------------------------------------
|||||||||||||||||||||||||||||||||||||||||||||||||||||||| - ШК
--------------------------------------------------------
--------------------------------------------------------
НазваниеХарактеристики - это постоянный текст, не меняется.
Наименование группы товаров, Характеристика,Наименование товара - соответственно берется из карточки номенклатуры.
Подскажите в какую сторону копать. Понимаю, что макет нужно новый делать. А обработку можно стандартную исползовать, просто ее модифицировать. По сути, получается, что нужно просто характеристики в столбик выводить. В стандартной обработке они в скобочках через запятую указываются. А все остально остается на своих местах.
Еще передо мной стоит задача видризменить этикетку.
Этикетка должна выглядеть примерно так:
--------------------------------------------------------
Наименование группы товаров
Наименование товара
НазваниеХарактеристики1 - Характеристика1
НазваниеХарактеристики2 - Характеристика2
НазваниеХарактеристики3 - Характеристика3
НазваниеХарактеристики4 - Характеристика4
НазваниеХарактеристики5 - Характеристика5
--------------------------------------------------------
|||||||||||||||||||||||||||||||||||||||||||||||||||||||| - ШК
--------------------------------------------------------
--------------------------------------------------------
НазваниеХарактеристики - это постоянный текст, не меняется.
Наименование группы товаров, Характеристика,Наименование товара - соответственно берется из карточки номенклатуры.
Подскажите в какую сторону копать. Понимаю, что макет нужно новый делать. А обработку можно стандартную исползовать, просто ее модифицировать. По сути, получается, что нужно просто характеристики в столбик выводить. В стандартной обработке они в скобочках через запятую указываются. А все остально остается на своих местах.
03.10.2008
14:40
#5
Да, только я на семерке практиковалась, а тут появилась необходимость с восьмеркой работать. Вот и приходится на ходу познавать.
03.10.2008
18:57
#6
"Ну тогда так:
ДопХарактеристики = Новый Структура("БазоваяЕдиницаИзмерения, СтавкаНДС, ВидНоменклатуры", "Баз. ед.", "НДС%", "вид"); //в общем твой список реквизитов
ТекТовар = СтрокаИзСписка.Номенклатура;
ТекстДляЭтикетки = ТекТовар.Родитель.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + ТекТовар.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС;
Для Каждого Реквизит Из ДопХарактеристики Цикл
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + Реквизит.Значение + " - " + ТекТовар[Реквизит.Ключ];
КонецЦикла;
ОбластьНоменклатура.Текст = ТекстДляЭтикетки;
Возможно для того что бы уместить всю эту "песню" придется раздвинуть ячейку макета (или назначить автораздвижение).
Подробнее можно по ICQ 270140431"
ДопХарактеристики = Новый Структура("БазоваяЕдиницаИзмерения, СтавкаНДС, ВидНоменклатуры", "Баз. ед.", "НДС%", "вид"); //в общем твой список реквизитов
ТекТовар = СтрокаИзСписка.Номенклатура;
ТекстДляЭтикетки = ТекТовар.Родитель.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + ТекТовар.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС;
Для Каждого Реквизит Из ДопХарактеристики Цикл
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + Реквизит.Значение + " - " + ТекТовар[Реквизит.Ключ];
КонецЦикла;
ОбластьНоменклатура.Текст = ТекстДляЭтикетки;
Возможно для того что бы уместить всю эту "песню" придется раздвинуть ячейку макета (или назначить автораздвижение).
Подробнее можно по ICQ 270140431"
06.10.2008
17:41
#7
Спасибо большое. Завтра попробую. Пока времени не было =) Я Вам в аську постучалась.
07.10.2008
15:08
#8
"Попробовала. Мне нужен не список реквизитов, а характеристики, которые в принципе храняться в справочнике ХарактеристикиНоменклатуры. Мне нужно, чтобы строка с характеристиками делилась на отдельные строки с характеристиками. В реквизитах номенклатуры нет характеристик.
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + (Наименование характеристики) + " - " + (Значение харакеристики);
Для примера: Кроссовки "ADIDAS" (5, 40, Белый)
Нужно, чтобы выглядело вот так:
Кроссовки "ADIDAS"
Полнота - 5
Размер - 40
Цвет - Белый"
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + (Наименование характеристики) + " - " + (Значение харакеристики);
Для примера: Кроссовки "ADIDAS" (5, 40, Белый)
Нужно, чтобы выглядело вот так:
Кроссовки "ADIDAS"
Полнота - 5
Размер - 40
Цвет - Белый"
08.10.2008
08:48
#9
"Восстанавливаешь исходное формирование текста по номенклатуре (строку 387 из обработки типовой конфигурации) и заменяешь ее на следующий код
ТекТовар = СтрокаИзСписка.Номенклатура;
ТекстДляЭтикетки = ТекТовар.Родитель.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + ТекТовар.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС;
ОбластьНоменклатура.Текст = ТекстДляЭтикетки + Символы.ПС + РаздельныйВыводХарактеристик(СтрокаИзСписка);
Потом добавляешь в модуль формы обработки функцию:
Функция РаздельныйВыводХарактеристик(СтрокаИзСписка)
ИнфПоХарактеристикам = """";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвойстваОбъектов.Наименование КАК Характеристика
|ИЗ
| ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
|ГДЕ
| СвойстваОбъектов.НазначениеСвойства = &НазначениеСвойства"
;
Запрос.УстановитьПараметр("НазначениеСвойства", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры);
ТабХарактеристик = Запрос.Выполнить().Выгрузить();
ТабХарактеристик.Колонки.Добавить("ЗначениеХарактеристики", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(100));
ПромСтруктура = Новый Структура(СтрокаИзСписка.Характеристика);
ТекИндекс = 0;
Для каждого ЭлементСтруктуры Из ПромСтруктура Цикл
ТабХарактеристик[ТекИндекс].ЗначениеХарактеристики = ЭлементСтруктуры.Ключ;
ТекИндекс = ТекИндекс + 1;
КонецЦикла;
Для Каждого СтрТаб Из ТабХарактеристик Цикл
ИнфПоХарактеристикам = ИнфПоХарактеристикам + ?(ПустаяСтрока(ИнфПоХарактеристикам), """", Символы.ПС) + СтрТаб.Характеристика + " - " + СтрТаб.ЗначениеХарактеристики;
КонецЦикла;
Возврат ИнфПоХарактеристикам;
КонецФункции // РаздельныйВыводХарактеристик()
После вывода такого количества строк в этикетку тебе придется увеличить высоту ячейки "Номенклатура". Это делается через множитель в строке 337 ("ОбластьНоменклатура.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 1.2;", мне для двух характеристик хватило коэфициента 1.2).
ЗЫ "Не поймал" Вас в "аське"... :("
ТекТовар = СтрокаИзСписка.Номенклатура;
ТекстДляЭтикетки = ТекТовар.Родитель.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС + ТекТовар.Наименование;
ТекстДляЭтикетки = ТекстДляЭтикетки + Символы.ПС;
ОбластьНоменклатура.Текст = ТекстДляЭтикетки + Символы.ПС + РаздельныйВыводХарактеристик(СтрокаИзСписка);
Потом добавляешь в модуль формы обработки функцию:
Функция РаздельныйВыводХарактеристик(СтрокаИзСписка)
ИнфПоХарактеристикам = """";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвойстваОбъектов.Наименование КАК Характеристика
|ИЗ
| ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
|ГДЕ
| СвойстваОбъектов.НазначениеСвойства = &НазначениеСвойства"
;
Запрос.УстановитьПараметр("НазначениеСвойства", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры);
ТабХарактеристик = Запрос.Выполнить().Выгрузить();
ТабХарактеристик.Колонки.Добавить("ЗначениеХарактеристики", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(100));
ПромСтруктура = Новый Структура(СтрокаИзСписка.Характеристика);
ТекИндекс = 0;
Для каждого ЭлементСтруктуры Из ПромСтруктура Цикл
ТабХарактеристик[ТекИндекс].ЗначениеХарактеристики = ЭлементСтруктуры.Ключ;
ТекИндекс = ТекИндекс + 1;
КонецЦикла;
Для Каждого СтрТаб Из ТабХарактеристик Цикл
ИнфПоХарактеристикам = ИнфПоХарактеристикам + ?(ПустаяСтрока(ИнфПоХарактеристикам), """", Символы.ПС) + СтрТаб.Характеристика + " - " + СтрТаб.ЗначениеХарактеристики;
КонецЦикла;
Возврат ИнфПоХарактеристикам;
КонецФункции // РаздельныйВыводХарактеристик()
После вывода такого количества строк в этикетку тебе придется увеличить высоту ячейки "Номенклатура". Это делается через множитель в строке 337 ("ОбластьНоменклатура.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 1.2;", мне для двух характеристик хватило коэфициента 1.2).
ЗЫ "Не поймал" Вас в "аське"... :("
10.10.2008
10:54
#10
"Испробовала Вашу обработку. Выдает ошибку:
{Форма.Форма(853)}: Ошибка при вызове конструктора (Структура): Недопустимое значение параметра (параметр номер '1')
ПромСтруктура = Новый Структура(СтрокаИзСписка.Характеристика);
по причине:
Недопустимое значение параметра (параметр номер '1')
Я понимаю, это связано с тем, что выводится в этикетку все характеристи из спавочника. И по этому первая позиция несоответствует данной характеристике.
Можно ли сделать так, чтобы выводильс характеристики только для ввыбранного товара?"
{Форма.Форма(853)}: Ошибка при вызове конструктора (Структура): Недопустимое значение параметра (параметр номер '1')
ПромСтруктура = Новый Структура(СтрокаИзСписка.Характеристика);
по причине:
Недопустимое значение параметра (параметр номер '1')
Я понимаю, это связано с тем, что выводится в этикетку все характеристи из спавочника. И по этому первая позиция несоответствует данной характеристике.
Можно ли сделать так, чтобы выводильс характеристики только для ввыбранного товара?"
Читают тему
(гостей: 1)