[ОБУЧАЛОВКА] Про сети (Ашан, Метро) и их заморочки...

Публикация № 16979

Разработка - Практика программирования

Демонстрируется подход к относительно безболезненному исправлению конфигурации ТиС для реализации сетевых заморочек (код сети в печатной форме ТОРГ12)
ВНИМАНИЕ!!! Данный материал носит спорный характер (читайте комментарии!) и не может служить непреложным руководстовм к действию. Рассматривается всего лишь один (не самый лучший) вариант решения задачи...
 
Клиент попросил в ТОРГ12 в графу "Код" вставлять для определенных клиентов определенный код. "Определенными клиентами" является ряд сетей: Ашан, Перекресток, Мосмарт и т.д. "Определенным кодом" является артикул товара в учете этих сетей, т.е. у Ашана - свой артикул для нашего товара, у Мосмарта - свой и т.д.

Итак, задача ясна. Как говорил Петька: "Чапай думать будет!"
По хорошему, конечно, надо навернуть кучу изменений для реализации ввода в карточку номенклатуры артикулов для сетей. Возможных вариантов три (если по быстрому):
1. для номенклатуры артикул сети пихаем в подчиненный справочник Аналоги;
2. артикулы пишем в свойства номенклатуры;
3. аналоги делаем доп.реквизитами в карточке товара.

Вариант 1 - самый "правильный", но неудобный для ручного ввода (товаров не сильно много, клиент согласился вводить ручками), + к этому - достаточно "непрозрачное" решение для клиента, особенно когда понадобится отображать артикулы в карточке клиента (доп.код придется писать) и в формах накладных(тоже придется писать доп.код) - уже будет труднее с обновлениями в последующем;
Вариант 2 - похуже, чем вариант 1, но тоже можно использовать. Трудности - аналогичные предыдущему варианту, + нужна дисциплина "манипуляции" с такими свойствами (что выльется в дополнительный код работы со свойствами);
Вариант 3 - самый легкий, конечно, но... негламурненький... ;-) основная проблема - необходимость править структуру данных конфигурации при появлении новых "сетей", + не забывать при обновлениях.

Подумали - и выбрали вариант 3. С учетом того, что это ПРОЩЕ всего, займет минимум времени у меня и недорого обойдется клиенту. Итак, делаем - как в варианте 3 (т.е. добавляем под каждую сеть отдельный реквизит для артикула сети, благо сетей немного - у клиента их всего 4 штуки...).
Тем более, что внятных 1Сников, которые умеют НОРМАЛЬНО РАБОТАТЬ на программном и идейном уровне со справочниками свойств и аналогов - я давненько не встречал... (плюс к этому попутно: франч, обновлявший конфигу клиенту, умудрился "потерять" внесенный по другой доработке новый код в глобальный модуль - хотя ему был перед добавлением выдан "протокол" изменений - что уж тут говорить о более серьезных доработках кода... - при очередном обновлении - все рухнет... франчи - они такие...)

Для тех, кто начал уже плевать в мою сторону - отвечаю просто - на себя посмотри, собака бешенная! ;-)

Под каждыую сеть сделаем отдельный реквизит для артикула сети. Реквизит будем именовать по такому шаблону: ПРЕФИКС_АртикулNN, где
ПРЕФИКС - отличительный признак добавленного реквизита;
NN - числовой код клиента в справочнике контрагентов.


Для тех, кто начал плевать в мою сторону во второй раз - отвечаю просто - ничего не знаю, клиент - мой, как хочу - так и делаю! ;-)

Итак получились следующие реквизиты (строка, 10):
БВК_Артикул19, БВК_Артикул35, БВК_Артикул58...

Да, привязываться к коду контрагента в наименованиях реквизитов конфигуратора может показаться на первый взгляд некомильфово... Но тут есть ряд соображений, которые мне помогут обойти матюги так называемых "специалистов 1С" в мой адрес:
1. Это всяко лучше, чем называть БВК_АртикулАшан или БВК_АртикулМосмарт (такие названия - исключительно для удобства специалистов с короткой памятью, более никакого функционала полезного такие наименования В ДАННОМ СЛУЧАЕ не несут... а я, не то чтобы злопамятный, просто я злой и память у меня хорошая.. ;-) ...тем более что оправданность наименования реквизитов в ивде БВК_АртикулNN будет показана дальше).
2. Что произойдет, например, если коды клиентов в справочнике изменятся? А ничего страшного не произойдет - при первой же сделке на сеть - отсутствие(или неверный артикул) в колонке "код" в ТОРГ12 нужного артикула будет отловлен сразу же... Если не самим продавцом (моим клиентом), то как минимум - сеть заругается... А если сеть не заругается - так ничего страшного, значит, и не произошло... А если какой-то код В ТОРГ12 будет печататься для совершенно другого покупателя - тоже ничего страшного... даже полезно, так покупателю и скажем - мы тут вам заодно еще артикулы сети печатаем, чтоб вам в своем городе легче с сетями работать было... $-)

Итак, выше показано совершенно оправданное применение для каждой сети отдельного реквизита с наименованием по особому правилу. Сортировку и отбор на артикулы сетей ставить не будем - неактуально.

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

Итак, в форму добавляем один слой с идентификатором "ДопАртикулы", в модуль элемента добавляем следующую строчку кода:
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение("Общий, Основной, Кнопки", "Основные");
Форма.Закладки.ДобавитьЗначение("Общий, Дополнительный, Кнопки", "Дополнительные");
//ДОБАВЛЕНО НЕТИПОВОЕ
Форма.Закладки.ДобавитьЗначение("Общий, ДопАртикулы, Кнопки", "Артикулы сетей");	
//КОНЕЦ ДОБАВЛЕНО НЕТИПОВОЕ

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

Теперь лезем во все печатные формы ТОРГ12 (а их у нас может быть несколько - встроенная таблица, внешние печатные формы) и в колонку код (под номером 3 в типовой форме) вписываем ПечКод (тип = Выражение).

В модуле печати ищем где у нас определяется ПечЕдиница и вставляем там определение выводимой на печать переменной ПечКод:
ПечЕдиница = СокрЛП(Докум.Единица.ОКЕИ.Наименование);
ПечОКЕИ = СокрЛП(Докум.Единица.ОКЕИ.Код);
//ДОБАВЛЕНО НЕТИПОВОЕ
Попытка 	ПечКод = Докум.Номенклатура.ПолучитьАтрибут("БВК_Артикул"+Число(Докум.Контрагент));
Исключение 	ПечКод = "";
КонецПопытки;
//КОНЕЦ ДОБАВЛЕНО НЕТИПОВОЕ

Вот, собственно, и вся доработка (для встроенной печатной формы префикс докум. должен быть опущен в приведенном выше программном коде). Вся фишка - в имени реквизита для артикула сети и использовании конструкции ПОПЫТКА. При этом - мы нигде не привязываемся ни к каким наименованиям, никаких доп.проверок и всякого ненужного программно-мусорного кода...
По времени заняло порядка 20 минут, клиент - удовлетворен...

Кому сия история понравилась - плюсуем рейтинг и оставляем комменты, а то обижусь!
На очереди - сага о быстром подсчете мест и коробок в ТОРГ12 у "замороченных" клиентов - оставляйте в комментах заявки!

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 21.06.07 14:40 Сейчас в теме
2. d.snissarenko 21.06.07 21:34 Сейчас в теме
прикольно, 570 бачей за 20 минут, ай малаца
26. poppy 3358 02.07.07 04:05 Сейчас в теме
> Да, привязываться к коду контрагента в наименованиях реквизитов
> конфигуратора может показаться на первый взгляд некомильфово

Продожение.

Я бы предложила другое решение:
В справочнике контрагентов добавить реквизит: "КодСети" (типа строка(2)). В справочнике Номенклатура, нужно добавить реквизиты "БВК_АртикулХХ", где ХХ = от 00 до 15 (или 20, или другое число).

В коде пишем:

Код
ПечКод = "";
ИмяРеквизита = "БВК_Артикул"+Докум.Контрагент.КодСети;
Если глЕстьРеквизитШапки(ИмяРеквизита, Докум.Вид()) = 1 Тогда ПечКод = Докум.Номенклатура.ПолучитьАтрибут(ИмяРеквизита);
КонецЕсли;
Показать полностью

В рассмотренном варианте мы можем "привязать" несколько контрагентов к одному коду номенклатуры.
3. d.snissarenko 21.06.07 21:35 Сейчас в теме
4. CheBurator 21.06.07 23:25 Сейчас в теме
Тьфу, блин... 1500 руб.. конечно...
5. alexdum12 22.06.07 09:42 Сейчас в теме
Я думаю продуктивность сотрудничества между твоим клиентом и его клиентами значительно бы возросла, предложи ты им обмен данными в электронном виде - это первое. Второе - а что будет когда количество подобных клиентов станет расти? Итог - решение на коленке долго не проживет, грамотный подход принес бы тебе больше презренных бумажек, а клиентам больше сервиса
6. Снусмумрик 229 22.06.07 12:16 Сейчас в теме
Че, ты чему народ учишь ? Исходно был выбран идеолгически неверный путь в данной задаче. Завтра появится 5, 6, 7 я сетка у клиента и что ?
Низачод короче
7. Снусмумрик 229 22.06.07 12:17 Сейчас в теме
"NN - числовой код клиента в справочнике контрагентов"

ужас !!! ужас !!!!
kachestvod; +1 Ответить
8. CheBurator 22.06.07 12:47 Сейчас в теме
Тьфу на вас всех, собаки бешеные! ;-)
Вероятность появления у клиента новых сетей в течение года - весьма мала... так что
NN - числовой код клиента в справочнике контрагентов - В ДАННОМ СЛУЧАЕ - практически оптимальное решение... особенно, если клиенту завтра припрет вставить колонку артикула Ашана в ТЧ документа реализации - это я смогу и по телефону разрулить... а вот при выборе идеологически верного Варианта 1 - придется телепаться на другой конец москвы...
Естественно, к выбору варианта решения надо подходить обоснованно... Ясен пень, что при первой же возможности следует переделать под Вариант 1, но работы там будет - раз в пять больше... потому что внешне для клиента - все должно быть максимально просто...
.
> а что будет когда количество подобных клиентов станет расти?
сразу видно, что народу лень думать... БОЛЬШИНСТВО клиентов, которые работают с сетями - имеют СВОЕГО программиста 1С. Поэтому - ничего не будет...
..
> решение на коленке долго не проживет
Согласен... Только предложенное выше как выразились "решение на коленке" - встраивается в систему за 15 минут... и уж поверьте - грамотные "коленчатые" решения - живут вполне себе успешно...
9. CheBurator 22.06.07 12:51 Сейчас в теме
> продуктивность сотрудничества между твоим клиентом и его клиентами значительно бы возросла, предложи ты им обмен данными в электронном виде...
Сапсем больной, да? ;-)
Обмен в электронном виде не исключает необходимости предоставления твердых копий документов. Пока я еще не встречал, чтобы налоговая принимала для проверки логи/электронные документы.
Низачот.
-1
10. imaster 7 22.06.07 14:37 Сейчас в теме
Ужос н@х... Такого изврата я ещё не видел.
Особенно "необходимость править структуру данных конфигурации при появлении новых "сетей", + не забывать при обновлениях."
kachestvod; +1 Ответить
11. CheBurator 22.06.07 14:49 Сейчас в теме
Ок, Специалисты.
Ставим задачу:
- решить сабж
- уложиться в общем случае в 10 строк кода.
- избежать программирования при вставке артикула сети в табличную часть документа.
...
критиканские высказывания без обоснования будут приравниваться к флуду... ;-)

imaster'у: а ты, что, никогда структуру данных конфиги не модифицировал?
42. CheBurator 24.07.07 19:10 Сейчас в теме
Кстати, задача, изложенная в (11) все еще актуальна...
12. Вадимко 207 23.06.07 02:28 Сейчас в теме
>>обойти матюги так называемых "специалистов 1С"
Бугоганах, ну-ну, пиши еще!
13. support 4480 23.06.07 12:17 Сейчас в теме
Не обжайте Чебурашку, он хороший. И его решение, более чем грамотное.
Сам работал с сетями, и знаю, что это такое, более придирчивого покупателя не найти, но это сеть, и она диктует условия.
Добавления нового реквизита в карточку номенклатуры самое простое и грамотное решение. Многие программисты не понимают, что 1С дала прекрасный инструмент, чтобы решать именно такие задачи. Создал реквизит, добавил на форму и все. Больше ничего делать не надо. А создание сложных систем по вводу дополнительных артикулов только усложняет процесс ввода, вывода и т.д. Потом научить оператора создавать такой артикул сложнее, чем научить создавать дополнительный реквизит в справочнике. :)
И еще, сетей, которые кодируют сами, в России можно пересчитать по пальцам, все остальные используют коды поставщиков. Создавать сложную систему для максимум десяти клиентов просто глупо.
Плюсы данное решения.
- Дополнительный артикул легко выводится в форму списка справочника (опять же заложено 1С), соответственно оператор может искать по нему.
- В любом универсальном отчете можно легко вывести код сети, т.к. это просто реквизит справочника.
- Добавить реквизит в табличную часть документа так же просто, как в форму списка.
- Можно осуществлять упорядочивание 1С запроса по данному реквизиту.
- Можно осуществлять поиск по реквизиту, отбор и т.д.
14. poppy 3358 24.06.07 01:47 Сейчас в теме
Я бы обошлась без попытки:

Код
ПечКод = "";
Если глЕстьРеквизитШапки("БВК_Артикул"+Число(Докум.Контрагент.Код), Докум.Вид()) = 1 Тогда   
   ПечКод = Докум.Номенклатура.ПолучитьАтрибут("БВК_Артикул"+Число(Докум.Контрагент.Код));
КонецЕсли;
Показать полностью
15. Ioann 47 27.06.07 11:32 Сейчас в теме
Что-то много всего намутил. Конфа, насколько я понимаю имеет типовой функционал с аналогами и каталогами. в этом случае вообще ничего не надо в структуре менять. У меня код (артикул) покупателя хранится в реквизите "ИдентификаторВКаталоге" справочника "Аналоги". При печати документов используется глобальная функция, которая возвращает код покупателя, в случае наличия аналога из каталога данного контрагента. В некоторых случаях используется не только код, но наименование товара, принятое у клиента (хранится в реквизите "Наименование" справочника "Аналоги") - есть и такие клиенты...
16. artbear 27.06.07 13:03 Сейчас в теме
При условиях, которые заданы в задаче
Цитата
"(плюс к этому попутно: франч, обновлявший конфигу клиенту, умудрился "потерять" внесенный по другой доработке новый код в глобальный модуль - хотя ему был перед добавлением выдан "протокол" изменений - что уж тут говорить о более серьезных доработках кода... - при очередном обновлении - все рухнет... франчи - они такие...)"
ни один из способов не является оптимальным.

Реализованный вариант 3 при подобном обновлении пострадает также, как и остальные варианты!!

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

При "плохом" обновлении/объединении в этом случае по крайней мере данные клиента (коды) не будут потеряны, как при использовании варианта 3 :(

Также 100% твой доп. слой будет потерян :)

ЗЫ а вообще подобная схема у меня лично давно реализована с помощью классов 1С++.
И подобные фичи легко добавляются в спец. подчиненный справочник, в котором соответствие один-один к справочнику-хозяину.
Для клиентского кода все прозрачно, только вместо
Спр = СоздатьОбъект("Справочник.Номенклатура");
используется
Спр = СоздатьОбъект("Общие.СправочникСДополнительнымиРеквизитами");
Спр.НазначитьВид("Номенклатура");
17. Ioann 47 28.06.07 11:47 Сейчас в теме
Про франча... С какой стати он обновляет конфу, которой занимается сторонний спец? Я бы на его месте не стал её сопровождать. Сопровождение типовой или не типовой совсем разные вещи, деньги и специалисты. Да и сопровождать то, за что ты отвечать не можешь на кой фиг?
18. CheBurator 28.06.07 12:55 Сейчас в теме
2 artbear: > Только я бы не использовал встроенный справочник Аналоги, а сделал бы спец. подчиненный справочник,
Хотелось бы узнать - чем неустроил справочник "Аналоги" - чисто интересно.
То, что при обновлении потеряется доп.слой - это да... но его по тлф. "внедрить" легче, чем большой кусок программного кода по вар.1. Понятно, что по варианту 3 код тоже потеряется - но его всего вообщем-то 3 строчки ;-)
...
> При "плохом" обновлении/объединении в этом случае по крайней мере данные клиента (коды) не будут потеряны,
// ну это надо так постараться, чтобы доп.реквизиты убить - это только если загрузить обновление.... ;-) хотя и такое могут отчудить... ;-)
..
> с помощью классов 1С++.
... отдавая дань возможностям 1С++ на широкое масштабное применение 1С++ не иду ввиду отсутствия внятной целной документации - и не надо давать ссылки на "обрывки", которые лежат на известных ресурсах... - это нельзя назвать документацией... ну и не надо экскаватором копать ямки для заборныз столбиков... ;-)
19. CheBurator 28.06.07 12:59 Сейчас в теме
2 Ioann: совершенно верно, согласен. у сеьбя в конторе сделано так же. Но при "внедрении" к клиенту требуется соотноситься с "возможностями" клиента. Как я писал ниже - такой вариант ДЛЯ КЛИЕНТА непрозрачен. Для нормальной работы требуется "прописать" фишку для заполнения аналогов. Вариант типовой работы с заполнением подчиненого справочника - весьма неудобен с практической точки зрения...
20. CheBurator 28.06.07 12:59 Сейчас в теме
2 poppy: ок. код только длиннее получается ;-)
21. Sancha 182 01.07.07 14:29 Сейчас в теме
Я, все сделал бы на свойствах номенклатуры. Сделал бы сервисную обработку на подобии обработки группового изменения св-в справочника, это для тех, кто должен отслеживать артикулы сетей. И внешнюю печ.форму torg12.ert подправил бы по своему усмотрению.
Нет геммора с обновлением и с печ.формой.
22. CheBurator 01.07.07 16:32 Сейчас в теме
Угум.. а a бы сделал на аналогах, ибо по сути это и есть аналоги...
23. poppy 3358 02.07.07 02:48 Сейчас в теме
> 2 poppy: ок. код только длиннее получается ;-)

Букавак больше, но строчек = меньше. ;)

Использование конструкции "Попытка" для определения наличия атрибута смахивает на почерк программистов из Раруса. Не буду разводить здесь антирекламу, но такой почерк вызывает у меня рвотные рефлексы.

Ты сам утверждал, что учился кодить у одноэсовых программистов ( http://infostart.ru/forum/read.php?25,4076,5928,ref=4246#msg-5928 ). Видать, плохо учился...
24. poppy 3358 02.07.07 03:41 Сейчас в теме
Не хочу обсуждать, на сколько решение = обосновано. Считаю, что Саппорт его обосновал.

Немного покритикую.
По вопросу обновления и франчей.
Не думаю, что мы доживем до 950 релиза. Если и доживем, то не скоро.
ИМХО очередные релизы пишут какие-то "студенты". Они вносят больше ошибок, чем исправляют. Поэтому, новый релиз + неумелый франч = взрывная смесь.

Если уж "решение" создает Че, то клиенту выгоднее обратиться к нему же за обновлением. Другое дело, что мотаться по Москве, выпоняя обновления = неблагодарное дело.
Как вариант: автор решения готовит очередное обновление, но обновление конкретной базы выполняет ближайший франч.
25. poppy 3358 02.07.07 03:52 Сейчас в теме
> Да, привязываться к коду контрагента в наименованиях реквизитов
> конфигуратора может показаться на первый взгляд некомильфово

Не то слово. Очень большое ФИ по этому вопросу.

В восьмерке, например, есть преопределенные элементы, но в серемерке, иногда, приходится принимать непопулярные решения.
27. CheBurator 03.07.07 02:42 Сейчас в теме
> нужно добавить реквизиты "БВК_АртикулХХ", где ХХ = от 00 до 15 (или 20, или другое число).
ну это - ваще отстой...
лучше уж как сделано в статье.. или на налогах/свойствах...
а вот почему Попытка - рвет на родину - непонятно...
Я считаю использование такой конструкции РАЗУМНО ТАМ где срабатывание по ветке "исключение" - не приводит к каким-либо траблам - как в примере вывода печатной формы... Другое дело, что при вычислительном каком-нить алгоритме применение Попытки не есть хорошо - так как БЕЗ ДОЛЖНОЙ ОТРАБОТКИ ИСКЛЮЧЕНИЯ приводит к иллюзии что все есть гуд...
28. CheBurator 03.07.07 02:44 Сейчас в теме
В любом случае - все предложенные решения (кроме описанного в статье) являются существенно БОЛЕЕ ЗАТРАТНЫМИ.. имхо...
А то, что 950 релиза ххз когда дождемся - это да... я у себя в конторе до сих пор на 933 сижу (книги продаж/покупок только из 941 подтянулл в всое время...)
29. topasha 23 03.07.07 07:54 Сейчас в теме
Автор видимо мало работал с крупными розничными сетями. Многие из них еще требуют, чтобы в Торг-12 были ИХ НАЗВАНИЯ ТОВАРОВ, их артикул, их отпускные цены, их цены для промоакций , их штрих код. (Остальное добавьте после внимательного прочтения договора) Помимо Торг-12 могут потребовать еще кучу документов типа протокола согласования цен, разные формы для ввода новых товаров и прочее. Плюс практически все сети требуют отдельно ведения списка товаров, поставляемых им. Некоторые трепетно относятся даже к порядку следования строк с товарами! Добавление новых товаров в их базу почти всегда платное (от 50 до 300 евриков за строку). Рекомендую очень внимательно читать договор с торговыми сетями. Я бы сделал справочник "Товарная матрица", подчиненный справочнику "Контрагенты", в котором для каждой розничной сети вёл бы свой список товаров с их названиями, артикулами, возможно ценами и проч. реквизитами. Решение автора простое, в лоб, но не универсальное.
30. angro 03.07.07 08:12 Сейчас в теме
ИМХО: такое публиковать нельзя, решение простое и работающее, но ничего из себя не представляет.
31. topasha 23 03.07.07 08:22 Сейчас в теме
Подход к решению задачи в корне не правильный! Все три предложенных варианта - не правильные!
32. CheBurator 03.07.07 11:40 Сейчас в теме
2 topasha: все верно. в данной конторе, которая описана выше - необходимости в реализации полной схемы "работы с сетями" как описано тобой ниже - необходимости нет... в другой конторе - там, все посложнее и по полной программе, как грится...
> решение автора простое, но не универсальное...
именно, речь ведь не шла о написании мегаконфиги для работы с сетями...
> Я бы сделал справочник "Товарная матрица", подчиненный справочнику "Контрагенты", в котором для каждой розничной сети вёл бы свой список товаров с их названиями, артикулами, возможно ценами и проч. реквизитами.
я бы не стал плодить излишеств и по максимум воспользовался бы "Аналогами" - тем боле что туда вполне можно впихнуть и артикул, и наименования, цены для каждой сети свои - тоже нормально реализуется штатными возможностями... доп.реквизиты - в свойства - все это, конечно, если работа с сетями не составляет ОСНОВНОЙ доли деятельности. Тогда имхо точить конфигу надо именно под автоматизацию работы с сетями...
33. CheBurator 03.07.07 11:41 Сейчас в теме
2 angro: т.е. лучше публиковать навороченное решение с кучей ошибок...? ;-)
смысл именно такой и был - прсо, без заморочек... суть уловлена верно.
34. wolfsoft 2422 03.07.07 13:21 Сейчас в теме
Вот, блин, тоже сейчас начну статьи писать, как я разным клиентам реквизиты добавлял! Вот статьей-то наваяю... ;)
зы: Но минусовать не буду, потому что принципиально против минусов :)
35. topasha 23 03.07.07 14:22 Сейчас в теме
В моём решении как раз заморочек меньше всего, а наворотов нет вообще. Можно даже и интерфейсов не мутиит никаких. достаточно показать клиенту, как штатно открыть форму списка подчинённого справочника и всё! Можно даже типовые обновления ствить без боязни что-либо утерять. Просто предложенные решения задачи методологически не верны в принципе, даже для маленькой конторы!
36. poppy 3358 05.07.07 02:23 Сейчас в теме
> > нужно добавить реквизиты "БВК_АртикулХХ", где ХХ = от 00 до 15 (или 20, или другое число).
> ну это - ваще отстой...

Не отстойнее, чем исходное решение... ИМХО ;)
Я даже не осуждаю то, что автор в своей статье многочисленно оправдывается за принятое решение.

> В любом случае - все предложенные решения (кроме описанного в статье) являются
> существенно БОЛЕЕ ЗАТРАТНЫМИ.. имхо...

Не существенно и не БОЛЕЕ.
Бюджет моего решения соизмерим с исходным. А если учесть перспективу "разруливания" ситуации по телефону, то значительно ниже как для заказчика так и для исполнителя.

Мое решение является более универсальным. В частности:
- у разных магазинов одной сети могут быть разные реквизиты. В этом случае разным контрагентам можно назначить одинаковые коды товаров;
- при появлении новых магазинов (сетей) пользователь добавляет данные в привычном для него интефейсе в т.ч. и без консультации по телефону.

В развитии решения можно добавить следующее.
Создать справочник "Сети". Тип реквизита КодСети справочника Контргаенты установить этот справочник. В форме элемента справочника Номенклатура показывать только те реквизиты, ХХ которых совпадает с кодом одного из элементов справочника Сети. Надписи для них брать из нового справочника.

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

Складывется впечатление, что заказчик и автор решения не знакомы с известным правилом: Я не настолько богат, что-бы покупать дешевые вещи.

Единственный плюс исходного решения отмечаю использование иднтификаторов реквизитов ПРЕФИКС_АртикулNN вместо БВК_АртикулАшан.
mdzen; support; +2 Ответить
37. poppy 3358 05.07.07 02:25 Сейчас в теме
> а вот почему Попытка - рвет на родину - непонятно...

Потому что в аналогичных ситуациях эту конструкцию используют программисты из известной большой франчайзинговой фирмы.
Конфигурации от них у меня ассоциируются с неработающими поделками.

Складывается впечатление, что свои решения они создают на "коленках", распостраняя их потом на всю страну. Вот и рвет на родину.

Я не против использования конструкции Попытка в целом и в рассматриваемой ситуации в частности.

Кстати, если бы такое решение (Вариант 3) предложил какой-нибудь новичок, что Чебур первый бы его зачморил ИМХО.
38. Трактор 1199 07.07.07 13:16 Сейчас в теме
Ух! :-)
Как я понял автор хочет защититься от дурака-обновляльщика.
Думаю что добавленный реквизит с точки зрения обновляльщика мало отличается от добавленного справочника.
Можно использовать префиксы для добавляемых объектов матаданных. Например, реквизит назвать ЧЕБУР_КодыСетей или назвать справочник ЧЕБУР_АналогиСетей.
Вариант2 наиболее защищён от дурака-обновляльщика, поскольку на первый взгляд требует меньше изменений в коде.

Вариант1 vs Вариант3
Трудоёмкость написания кода для разбора строк не меньше чем трудоёмкость написания кода для работы с подчинённым справочником. Кроме того для облегчения обновления форму элемента лучше трогать поменьше. Я бы навесил на неё только кнопку с вызовом справочника аналогов или формы обработки по заполнению аналогов. Получается что разница в объёме кода между первым и третьим вариантом исчезающе мала, а вот разница в ссылочной целостности и лёгкости доработки - значительная.

Вариант2 vs Вариант3 vs Вариант1
До сраки как сделать, главное чтобы работало и чтобы пришедший после тебя не сильно матюкался.

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

Касательно комментариев. Лучше писатьтак
а так
//(( Чебурашка 07.07.2007
//)) Чебурашка 07.07.2007

Автору плюс за поднятую тему.
39. CheBurator 08.07.07 00:36 Сейчас в теме
спасибо Трактору за комент. единственное с чем не соглашусь
> то разница в объёме кода между первым и третьим вариантом исчезающе мала,
- на мой взгляд разница в коде - весьма существенна... хотя кто как считает...
> ЧЕБУР_КодыСетей
ну так и названо - БВК_Артикул...
40. GROOVY 2540 10.07.07 03:13 Сейчас в теме
Зачетная статейка. Конечно про "правильность" подхода мы тут говорить не будем, ведь для определенного решения это есть гуд.
das; support; +2 Ответить
41. CheBurator 10.07.07 03:16 Сейчас в теме
Вот слова истинного Дао!
das; support; +2 Ответить
43. Alesya 25.07.07 12:53 Сейчас в теме
Программистам может и не нравится, что ж их мнение...
Но ведь нравится пользователю. Мне как пользователю - это удобно. Это комфортно.
Мало того, я знаю, что если вдруг возникнет проблема, мне её сразу решат. Серёжа, спасибо, с тобой очень комфортно работать!
44. das 232 22.09.07 04:47 Сейчас в теме
43) Полностью присоединяюсь!
Спасибо за статью - ваше зерно опыта в нашу копилку!!!
45. XLstarter 08.07.08 15:49 Сейчас в теме
в комментах товара ввел для клиента правило на заполнение первых символов типа !М3253!А5643! и создал отдельные печатные формы расходных, счетов, ттн (пришлось повозиться с группировкой товара по их единому коду), от !Мдо! - Метро, от !А до ! Ашан ... в печ.форм. подставлял кода - печ.ф. М - метро, А - ашан..
46. v.l. 26.08.09 16:32 Сейчас в теме
МЕТРОимся и АШАНимся... захитали... особенно МЕТРО...
+
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    73318    0    Serginio    108    

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

Практика программирования Внешнеэкономическая деятельность (ВЭД) Внешнеэкономическая деятельность (ВЭД) v77::ОУ 1С7:ТиС Россия БУ НДС Бесплатно (free)

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    10395    0    AndKovalchuk    0    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    54597    0    Serginio    33    

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д.

Разработка внешних компонент Практика программирования WEB v7.7 v8 Бесплатно (free)

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    30814    0    Serginio    22    

1С:Предприятие 7.7. Оптимизация. Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Разгоняем 1С:Предприятие 7.7. Выжимаем последние соки.

31.01.2009    45906    0    alexk-is    110    

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    86031    0    shmellevich    38    

Как уменьшить количество заблокированных объектов Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    15286    0    ShEvOvIcH    18    

Скрытие помеченных на удаление в справочнике

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Корректно скрываем помеченных на удаление в справочнике, с иерархией и без. Вроде простая и нужная вещь, но почему-то нигде не встречалась

08.08.2012    13570    0    mikukrnet    7    

Продажа собственной фирме (интеркомпани) - заполнение отрицательными остатками

Практика программирования Учет ТМЦ Учет ТМЦ v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

В документе "Продажа собственной фирме" приходится добавлять номенклатуру вручную через подбор. А ведь можно сэкономить время и заполнить спецификацию документа на основании отрицательных остатков фирмы. Все просто...

06.05.2012    13197    0    2sw    4    

Ввод остатков по 76.ВА в 1С ПУБ

Практика программирования v77::ОУ v77::БУ 1С7:ПУБ Россия БУ Бесплатно (free)

Статья посвящена найденному мной недостатку в конфигурации 1С 7.7 "Производство-услуги-бухгалтерия", связанному с вводом начальных остатков по 76.ВА.

29.04.2012    9817    0    Пользователь 1С    0    

Технология обновления нетиповых конфигураций 1С:Предприятия 7.7 Промо

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Данная статья рассчитана на уже подготовленного пользователя, владеющего некоторыми навыками программирования и работы в конфигураторе. Статью можно использовать как поэтапное руководство к действию. Статья была написана для повышения качества работ выполняемых сотрудниками компании Информ Сервис при обновлении нетиповых конфигураций. Я надеюсь, что эта информация окажется полезной и для вас.

12.12.2008    62151    0    alexk-is    25    

Обновление базы 1с 7.7. с помощью движка 1с 8.х

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Если Вас угораздило в стандартную типовую конфу внести правки, причем в самый большой модуль, а именно глобальный. Если к тому же Вы внесли изменение в какую-то стандартную функцию, в которой 1с сама регулярно чего-то меняет, то любое обновление начинает доставать. Используя возможности движка платформы 1с 8.х можно существенно сэкономить себе время и нервы.

28.04.2012    18300    0    Valerich    31    

Ошибка при формировании отчета Авансы по налогу на имущество. В 1С:Предприятие 7.7. Регламентированная отчетность за I квартал 2012 года Обновление 12q1009 от 18.04.2012 г.

Практика программирования v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free)

При формировании отчета NIMAVP1.ERT Авансы по налогу на имущество (версия 5.03) в разделе № 1-3 не сохраняет номера Страниц при выборе, что ведет к не сохранению и выводу печати двухмерного кода.

24.04.2012    9179    0    leo072    7    

v77. Робот

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Исполнитель Робот. Учебное пособие по программированию для детей дошкольного возраста. Без внешних компонент.

09.04.2012    12144    3    item    18    

Запуск внешней обработки по расписанию v7.7

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Неоднократно возникали задачи организовать, например ежедневную выгрузку и отправку отчетов по эл.почте, и вот…

20.03.2012    43525    0    Yury1001    17    

v77. Паинт

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

v77. 1С:Паинт :) Такая вот игрушка. Без внешних компонент.

06.03.2012    14358    1    item    38    

Быстрый отбор в журнале на конкретную дату

Практика программирования v77::ОУ 1cv7.md Россия Бесплатно (free)

Лень - двигатель прогресса. Полезная фича для быстрого отбора документов в любом журнале на конкретную дату.

27.02.2012    11066    0    avers007    16    

ЗиК 321, в отчетах пропадает проводка по ПФР_страховая

Практика программирования v77::ОУ v77::Расчет 1С7:ЗиК Россия ФОМС, ПФ, ФСС Бесплатно (free)

При формировании отчета "Свод проводок" с галкой "Учет начисления налогов с ФОТ, включаемых в состав расходов" в отчет не выходит ПФР_страх

10.02.2012    6657    0    filh    19    

Прямые запросы: ускорение получения цен для типовой ТиС 7.7

Практика программирования Разработка внешних компонент v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

Первая статья из цикла статей "Прямые запросы:...". Рассказывается о применении класса ПрямойЗапрос и компоненты 1С++ для ускорения функции глВернутьЦену() в типовой конфигурации Торговля и склад. Платформа 7.7.

15.11.2011    15373    0    leshik    21    

1С:Торговля и Склад - ошибка во всех релизах, При использовании нескольких фирм и префиксов номеров документов.

Практика программирования v77::ОУ 1С7:ТиС Россия Бесплатно (free)

Собственно сегодня обнаружил ошибку, которая присутствует во всех релизах конфигурации Торговля и Склад 7.7 вплоть до текущего 7.70.969, при использовании нескольких фирм и префиксов документов для некоторых из них.

04.11.2011    15346    0    twilight5023    8    

7.7.: Готовим md-файл для публикации. В картинках.

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Вы доработали типовую конфигурацию: скажем, добавили новый Документ, и хотите им поделиться с обществом ИС. Но нельзя же выложить МД-шник целиком, это будет нарушением правил. И как тут быть?

14.09.2011    17189    0    Арчибальд    21    

Кнопка обновления версии внешнего отчета

Практика программирования v77::ОУ v77::БУ v77::Расчет Россия Бесплатно (free)

После исправления внешнего отчета вместо рекомендации пользователю: "Закрой отчет и открой его заново", говорим: "Нажми на кнопку".

18.06.2011    13688    0    Shaman100M    8    

Особенности сортировки в 1С:Предприятие 7.7

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Подобная "разработка" использовалась для анализа/сравнения порядка индексов таблиц БД в различных СУБД: "родные" DBF, MS SQL, CodeBase 6.5, Advantage 7.x/8.x/9.x. Тогда было выяснено, что в этих СУБД разный порядок сортировки индекса.

29.05.2011    17294    0    hogik    4    

Учет переплаты за прошлый период (персонифицированный учет в ПФР)

Практика программирования Зарплата Зарплата v77::ОУ 1С7:ЗиК Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Для того, чтобы в отчетности за текущий период учитывалась переплата по страховой/накопительной части, произведенная в прошлых отчетных периодах.

06.05.2011    5715    0    pavel_vrn    8    

Как создать в 7.7 XML, проверить по схемам (XSD, XML) от заказчика и отправить на вебсервер методом Post

Обмен через XML Практика программирования v7.7 1cv7.md Бесплатно (free)

Немного об API из 1С. Или простой способ создать, проверить и отправить на вебсервер XML-файл.

30.04.2011    82146    0    artms    24    

Конвертация прериодических реквизитов справочников

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Активно работаю с конфигурацией "Конвертация" версии 2.0, но возникают ситуации, когда необходимо написать правила обмена между базами данных 1С:Предприятие. Когда и источник и приемник имеют версию 7.7. И камень преткновения - выгрузка периодических реквизитов справочников.

29.04.2011    14735    0    lvictor58    2    

Некоторые ошибки и «проблемные» особенности реализации встроенного языка платформы 1С:Предприятие 7.7

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Описание некоторых ошибок и особенностей реализации встроенного языка, которые создают «подводные камни» при программировании, а также возможных способов обхода этих проблем из собственного опыта работы на платформе 1С:Предприятие 7.7.

08.04.2011    46450    0    AleksR    102    

Остатки с анализом сроков движения

Управленческие Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v77::ОУ 1С7:Комплекс Россия УУ Бесплатно (free)

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

01.04.2011    8197    0    frob_st    2    

Вариант реализации динамического табло в 1С 7.7

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Позволяет отображать на экране (монитора или большого телевизора) результат работы требуемого отчета при изменении определенных данных без необходимости интерактивного участия пользователя

14.03.2011    9041    0    1с2с    19    

Отпуск по уходу за ребенком. Расчет по-новому и по-старому

Практика программирования Управление персоналом (HRM) Управление персоналом (HRM) v77::Расчет 1С7:ЗиК Россия Бесплатно (free)

По новому законодательству расчет среднего заработка для отпуска по уходу можно производить как по старым правилам, так и по новым, на усмотрение сотрудника. Реализуем это в ЗиК.

11.03.2011    12613    0    Nicholas    9    

Ошибки формата файла 2-НДФЛ в ЗиК релиз 306

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия НУ НДФЛ Бесплатно (free)

Ошибки 2НДФЛ в релизе: файл формируется как для ЮЛ, даже если работодатель ИП, опечатка "Отчетсвто", и указание имени файла с расширением. Нужно подправить отчет "СправкиПоНДФЛ".

02.02.2011    19963    0    1st    6    

ЗиК 305 ЗиК 306 Больничный лист.

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия Бесплатно (free)

Для переходящих больничных листов за счет работодателя оплачивается 2 дня, а не 3. Первоисточник: http://forums.kuban.ru/forum/viewtopi...669&page=2

25.01.2011    14686    0    Cvetic    26    

Тюнинг Бух 7.7.: Микрографики в ТЧ документа.

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Как вставить в документ что-то вроде диаграммы распределения сумм…

25.01.2011    20360    0    Арчибальд    18    

Загрузка справочника в объект FormEx "Дерево+Таблица"

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Загрузка справочника в объект FormEx "Дерево+Таблица".

17.11.2010    5105    0    Kot31    7    

Подбор свободного кода справочника "Номенклатура" без захвата одного и того же кода несколькими операторами.

Практика программирования v77::ОУ 1С7:ТиС Россия Бесплатно (free)

При использовании в справочнике Номенклатура конструкции подбора не занятых кодов менее максимального, при работе нескольких операторов возникла проблема захвата одного и того же кода, если не использовать Записать() при создании нового элемента.

05.11.2010    9736    0    Rusk51    10    

Быстрый подсчет элементов справочника

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

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

18.10.2010    23525    0    brr    11    

[ОБУЧАЛОВКА] Прямые запросы: практические примеры разработки

Практика программирования v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

Пример прямого запроса для типовой 1С 7.7. ТиС для извлечения цен номенклатуры... тест

30.09.2010    126763    0    CheBurator    37