|
Замена значения перед выводом на печать ТОРГ 12 и счет-фактура | ☑ | ||
---|---|---|---|---|
0
Juvelirus
25.04.17
✎
08:42
|
Всем добрый день. Сначала о том, на чем работаю:
УТ 11.3.2.207 Платформа 8.3.9.2170 Задача: Есть стандартная номенклатура, связанная с сайтом. Есть наименование для печати. Есть нормальные заказчики, а есть не очень. И эти самые "не очень", требуют, чтобы в счете и торг 12 было именно их наименование товара. Решение: введены в ТЧ заказа клиента и реализации дополнительный реквизит: "НоменклатураКлиента" с типом СТРОКА. Задача, провести обработку массива перед выводом на печать по алгоритму: Для каждого стр из Объект.Товары Цикл Если стр.НоменклатураКлиента <>"" ТОГДА НазваниеДляПечати = стр.НоменклатураКлиента; Иначе НазваниеДляПечати = стр.Номенклатура.НаименованиеПолное КонецЕсли; КонецЦикла; Как реализовывать - в расширении, методом &ВМЕСТО, чтобы не ломать стандартные механизмы и не использовать ВПЧ. Собственно прощу у Вас помощи с подсказкой как это реализовать. Буду признателен помощи. Заранее большое спасибо! |
|||
1
Flover
25.04.17
✎
09:11
|
(0)
>>>и не использовать ВПЧ. >>>>Как реализовывать - в расширении, методом &ВМЕСТО будь оригинальным и не ищи лёгких путей, оставь о себе гвоздик в истории )) разверни базу отдельную, настрой обмен через универсальные правила, гоняй его каждые 10 минут в оба конца и печатай для клиентов так как им надо из новой базы )) - для каждого клиента обязательно свою базу сделай. |
|||
2
Масянька
25.04.17
✎
09:17
|
(0) Есть такой момент...
Только у нас наименование по тендеру. Я пошла таким путем: в справочнике поле "СпецПечать", в док-ах "галочка" "СпецПечать" - при установке данной "галочки" выводится не наименование, а спецпечать. Как два пальца оросить (С) |
|||
3
Juvelirus
25.04.17
✎
10:33
|
(2) Вот и я о том же, но вопрос, куда вы выводите и как эти данные. Собственно решение у нас с Вами я так понимаю идентичное)))
|
|||
4
Масянька
25.04.17
✎
10:37
|
(3) В печатной форме ТОРГ-12 (аналогично и в остальных):
Если (СпецПечать = 0) Тогда мНоменклатура = глРазбитьТекстНаСтроки(Номенклатура.ПолнНаименование, 59); Иначе мНоменклатура = глРазбитьТекстНаСтроки(Номенклатура.АльтернативноеНаименование, 59); КонецЕсли; |
|||
5
Масянька
25.04.17
✎
10:37
|
+ (4) мНоменклатура - это строка 2-ой колонки.
|
|||
6
Juvelirus
26.04.17
✎
13:28
|
(4) Простите, туплю. В какой именно процедуре вы это делаете? Можете подробнее показать? Я думал подкорректировать запрос, но как оказалось это не самый оптимальный вариант.
|
|||
7
Масянька
26.04.17
✎
13:34
|
(6) Во-первых, это семерка.
Во-вторых, делать нужно не в запросе (где получаешь данные), а там, где идет формирование печатной формы. У меня - переписанная печ. форма, поэтому (у меня) ВывестиСтроки(ПечТабл, МнЧ, НачСтрока, КонСтрока). А у себя - ищи, где формируется печ. форма (заполняются поля и всё такое). |
|||
8
AlvlSpb
26.04.17
✎
14:15
|
(0) Я бы сделал проще
В текстовом описании вашей Номенклатуры (например, Товар1), написать точное название номенклатуры клиента "Привереда" (наример, Товар1_1) В модуле менеджера в запросе на выборку номенклатуры для печати Заменить строку РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры, На ВЫБОР КОГДА РеализацияТоваровУслугТовары.Ссылка.Контрагент.Наименование = "Привереда" ТОГДА РеализацияТоваровУслугТовары.Номенклатура.Описание ИНАЧЕ РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КОНЕЦ КАК ПредставлениеНоменклатуры, ВСе. В форме документа будет стоять ваш понятный товар, в форму ечати выведется его наименование |
|||
9
AlvlSpb
26.04.17
✎
14:16
|
*его имеется в виду клиента "Привереда"
|
|||
10
Злопчинский
26.04.17
✎
14:23
|
что-то мне кажется что ТС изобретатет свинтопрульный агрегат
даже в 77 были аналоги номенклатуры. в УТ11 это точно есть. загнать туда и тянуть при печати |
|||
11
Злопчинский
26.04.17
✎
14:24
|
без всяких дополнительных реквизитов
|
|||
12
AlvlSpb
26.04.17
✎
14:39
|
(0) Ну а если все-таки хотите по доп реквизитам, пример кода:
(делал в расширении по ТЗ: если контрагент с таким-то именем, то заголовок счета должен быть с префиксом, определенным этим клиентом) &Вместо("СформироватьПФ") Функция РасшСчет_СформироватьПФ(ОписаниеПечатнойФормы, ДанныеОбъектовПечати, ОбъектыПечати, ВывестиПланОплаты) Экспорт ТабДок = ПродолжитьВызов(ОписаниеПечатнойФормы, ДанныеОбъектовПечати, ОбъектыПечати, ВывестиПланОплаты); ОпрПоставщика = ТабДок.НайтиТекст("Пепкин"); Если ОпрПоставщика <> Неопределено Тогда НашЗаголовок = ТабДок.НайтиТекст("Счет на оплату № "); ПрефиксГод = Формат(ТекущаяДата(), "ДФ=yy"); УбратьЗаголовок = СтрЗаменить(НашЗаголовок.Текст, "Счет на оплату № ", ""); УбратьДату = СтрЗаменить(УбратьЗаголовок, "от", " "); НашНомер = СокрЛП(Лев(УбратьДату, 5)); ДлинаНомера = СтрДлина(НашНомер); Если ДлинаНомера = 1 Тогда ЛидирующиеНули = "000"; ИначеЕсли ДлинаНомера = 2 Тогда ЛидирующиеНули = "00"; ИначеЕсли ДлинаНомера = 3 Тогда ЛидирующиеНули = "0"; Иначе ЛидирующиеНули = Неопределено; КонецЕсли; Результат = СтрЗаменить(НашЗаголовок.Текст, "№ ", "№ ТКСПБ" + ПрефиксГод + "-" + ЛидирующиеНули); НашЗаголовок.Текст = Результат; КонецЕсли; Возврат ТабДок; КонецФункции Т.е. изменения ведутся на уровне уже созданного табличного документа для печати. Перехватываем функцию формирования печатной формы - &Вместо тут же заставляем отработать перехватываемую функцию из модуля конфы : ТабДок = ПродолжитьВызов(ОписаниеПечатнойФормы, ДанныеОбъектовПечати, ОбъектыПечати, ВывестиПланОплаты); И дальше делаем манипуляции нам необходимые. |
|||
13
1cVandal
26.04.17
✎
14:41
|
(11) он не хочет код типовой ломать, не хочет делать свою ВПЧ. Он хочет использовать расширения и подменить типовую процедуру своей
|
|||
14
1cVandal
26.04.17
✎
14:42
|
Это читал http://v8.1c.ru/o7/201603module/index.htm ?
|
|||
15
1cVandal
26.04.17
✎
14:43
|
Так же всем отписавшимся здесь тоже желательно это прочитать если работаете с 8.3. А то вопрос задан конкретный а такую чушь пишите
|
|||
16
AlvlSpb
26.04.17
✎
15:02
|
(14) Кому вопрос?
|
|||
17
Злопчинский
26.04.17
✎
17:42
|
(13) да процедуру-то пусть подменяет. зачем городить ненужные объекты/виды метаданных?
|
|||
18
Злопчинский
26.04.17
✎
17:48
|
не, я могу тупить и быть полным неадекватом, но что-то тут не так..???
https://content.screencast.com/users/Che66/folders/Jing/media/651c711b-d192-4789-83d1-c35beceb60bf/2017-04-26_1747.png |
|||
19
Вафель
26.04.17
✎
17:50
|
всю процедуру жестоко подменять. нужно в единичном месте вклиниться.
Тут расширения не очень помогут |
|||
20
Джинн
26.04.17
✎
18:01
|
(0) Решение кривое. Кошерное решение - регистр сведений, подчиненный номенклатуре с контрагентом и его наименованием номенклатуры.
|
|||
21
Вафель
26.04.17
✎
18:03
|
(20) в ут уже есть справочник номенклатура поставщика
|
|||
22
Злопчинский
26.04.17
✎
18:04
|
(20) в клюшках так и сделано. вместо РС - подчиненный справочник
|
|||
23
Злопчинский
26.04.17
✎
18:21
|
http://catalog.mista.ru/public/594348/
Расширение конфигурации. Создаем печатную форму для документа. |
|||
24
Джинн
26.04.17
✎
18:27
|
(21) Тем более. Нужно ее использовать и для покупателя. Одна функция с параметрами Номенклатура и Контрагент, которая вернет кошерное наименование во все печатные формы. У меня в УПП так сделано - у сетей попадаются такие шизанутые требования.
|
|||
25
Злопчинский
26.04.17
✎
18:54
|
(24) возможно это не шизанутые требования а просто недоработки регламентов и бух.учетных политик.
у тебя товар называется "гвоздь оцинкованный сотка" а у меня "100 оцинк.гвоздь" а писать в приходе надо типа так как в документах поставщика. вот они-сетки и вбили когда-то у себя "Оцинкованный гвоздь-100" и теперь требуют от всех такого указания наименования. бо на рабочих местах во многих сетях автоматизация на зачаточном уровне виде компа для доступа в корп.ситему, а корп система пользы никакой не дает (бо так запилена или некому до таких частностей опускаться) |
|||
26
Джинн
26.04.17
✎
19:03
|
(25) > а писать в приходе надо типа так как в документах поставщика
В этом месте не совсем правильно. Был в свое время у ФНС приступ шизофрении по этому вопросу, но потом, судя по всему, либо укол успокоительного получили, либо забыли/забили. А в остальном верно. Но только есть один нюанс - мы производственная контора и никто не может продать сетям продукцию под нашей торговой маркой :) Мы единственный поставщик, а значит иного наименования у них быть не может. Но нет, умудрились накосячить. Некоторые правда до маразма не дошли - только свои коды требуют, а не свое наименование. Тут понять можно - приемку легче автоматизировать. |
|||
27
Злопчинский
26.04.17
✎
19:45
|
(26) с кодами да, у меня в одну сетку кроме нашего артикула еще три кода покупателя впилено https://www.screencast.com/t/GxKEzzfH
|
|||
28
Злопчинский
26.04.17
✎
19:48
|
(26) маразма хватает. в этом же самом покупателе - все коробочные блоки маркируются спецэтикетками со спецкодами/штрихкодами покупателя. Причем это было впихнуто нам как непременное условие иначе кабздык. сделал. пофиг на приемке это нафиг не надо, никто на это не смотрит. - ибо все вскрывается и принимается поштучно. Но клеить надо. почему? ПОТОМУ ЧТО ЗДЕСЬ ТАК ЗАВЕДЕНО. - яркий пример когда логистика оторвана от реальности.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |