Бухгалтерия / Говнокод #13761 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
Если ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003726") Тогда //000003726 - Автолюкс 
	СлужбаДоставкиВСМС = "AvtoLux";
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003727") Тогда //000003727 - Гюнсел 
	СлужбаДоставкиВСМС = "GUNSEL";
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003725") Тогда //000003725 - Интайм 
	СлужбаДоставкиВСМС = "InTime";
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003826") Тогда //000003826 - Мист экспресс
	СлужбаДоставкиВСМС = "Meest-express";
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003932") Тогда //000003932 - Киевские ведомости 
	СлужбаДоставкиВСМС = "Kievskie vedomosti"	
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003722") Тогда //000003722 - Новая почта
	СлужбаДоставкиВСМС = "Nova Poshta";	
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003729") Тогда //000003729 - Ночной экспресс
	СлужбаДоставкиВСМС = "Nochnoi express";
ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003728") Тогда //000003728 - САТ
	СлужбаДоставкиВСМС = "CAT";
//.....

КонецЕсли;

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

Запостил: rull9ss rull9ss, (Updated )

Комментарии (44) RSS

      • Я ни разу не 1сник, но мне кажется, что стоило бы тупо запилить справочник СлужбыДоставки с нужными полями, и связать его по коду со справочником контрагентов 😉

        А может быть там и более удобные средства для таких случаев имеются.
        Ответить
        • P.S. Ну или добавить поле прям в справочник контрагентов...
          Ответить
        • В 1С новые справочники лучше не пилить. Только свои костыли. Кстати, можно сделать как здесь:
          http://www.govnokod.ru/12501
          Тогда можно просто вбить в таблицу и получить таблицу. В конфигурации Раруса так везде. Я опубликовал, потому что это прежде всего необычно. Если прикинуть, то вариант с массивом будет такой же огромный, как и этот код.
          Ответить
            • Если конфигурация поддерживается, то лучше ее не трогать, в противном случае будут проблемы с переходом на более новую версию, в которой лежат все новые макеты и документы. Добавлять документы еще можно - они легко перносятся, а исправления для справочников придется править по всей конфигурации.
              Но конфигурастам из 1С-ных контор на это наплевать.
              Ответить
              • > для справочников придется править по всей конфигурации
                А что там так сильно рассеивается? Справочник в 1с это не просто таблица и форма для ее редактирования? Просто я под 1с ни разу не кодил, и не в курсе ситуации.

                > конфигурастам
                Классное слово, надо запомнить.
                Ответить
                • >Справочник в 1с это не просто таблица и форма для ее редактирования?
                  Да это таблица БД с формой.
                  Но когда делать правки по всей конфигурации с этим справочником. При обновлении конфигурации возникает проблема переноса этого справочника в новую конфигурацию.
                  Новая конфигурация представляет из себя чистый код, относящийся к новому законодательству, а у тебя куча документов с этим справочником. В этом случае нужно брать какой-нибудь windiff и править каждый модуль, это очень долго. Единственный безопасный вариант, это использовать справочник только в своих документах, тогда нужно просто поправить эти документы для текущего законодательства. Красивых способов в 1С нет.
                  >Классное слово, надо запомнить
                  Оно употребляется, потому что 1С очень простой язык. Часто человек на нем пишущий представляет из себя скорее продвинутого бухгалтера, нежели программиста)). Единственная серьзная особенность - запросы, которые скармливаются построителю отчетов.
                  Ответить
                  • > Но когда делать правки по всей конфигурации с этим справочником.
                    Не ну это само собой. Если я буду подпиливать изкоробочные документы и код, то я получу головную боль при портировании своего патча на новую версию. Имхо, такие операции нигде безболезненно не проходят, не только в 1с...

                    > Единственный безопасный вариант, это использовать справочник только в своих документах
                    Ну собственно добавление новых документов и справочников для них меня и интересовало.

                    P.S. Кстати, а модули и шаблоны для форм/документов хранятся в текстовых файлах? Или там свои форматы, с которыми без конфигурятора особо не поработаешь?
                    Ответить
                    • >Или там свои форматы, с которыми без конфигурятора особо не поработаешь?
                      Именно так. В каждом файле-отчете лежат макеты+модуль+формы(к каждой форме лежат модули и сопутствующие данные).
                      Ответить
                      • > Именно так.
                        Жопа. Т.е. о git'ах и прочих системах контроля версий можно даже не мечтать...
                        Ответить
                          • > на git тупо бинарники
                            Ну это, имхо, кривовато: диффы то не посмотреть толком у бинарников, да и места такая репа будет жрать больше.

                            У текстовых файлов еще плюс есть - ненулевая вероятность на автомате наложить дельту между изкоробочной и своей версией на новую изкоробочную. Хотя тут все очень зависит от того, насколько сильно эту версию перепиливают между релизами.
                            Ответить
                            • >У текстовых файлов еще плюс есть - ненулевая вероятность на автомате наложить дельту между изкоробочной и своей версией на новую изкоробочную.
                              Ага, и ненулевая вероятность потом ловить глюки. А если патчу лет 5?
                              Ответить
                              • > А если патчу лет 5
                                Все зависит от того, на сколько уплыла за это время базовая версия 😉

                                Согласись, если в базовой версии сделали какой-то мелкий фикс, для нетронутых нами модулей, и не испорчено API, то проще автоматом накатить патчсет, чем ебаться и переносить все дельты руками 😉

                                Да и никто не говорит, что после наложения патча надо сразу отдавать результат бухам. Чтение и тестирование никто не отменял.

                                Ну и я же не утверждаю, что это панацея. Просто во многих случаях это действительно удобно (хотя в моей сишной практике далеко не всегда канало).
                                Ответить
                                • >Чтение и тестирование никто не отменял.
                                  И накатывание чужих патчей превращается из работы пользователя в работу программиста. just as planned, прыщебляди соснули.
                                  Ответить
                                  • > превращается из работы пользователя в работу программиста
                                    Ну а что ты хотел? Взялся за допилку конфы, к которой 1с выпускает изменения - страдай. Ты уже программист а не пользователь 😉

                                    > накатывание чужих патчей
                                    Да схуяли. Пользователь просто возьмет готовую конфу, подпиленную и проверенную для него программистом, да и поставит/обновит (а на практике к нему прибежит франчайзи, который ему конфу допиливал, и поставит все сам). Ну а если не проверенную - будет звонить программисту и заябывать его вопросами, пока тот не научится проверять 😉

                                    Ты пойми: я же не предлагаю распространять допиленные конфигурации в патчсетах. Я просто говорю о том, что классические средства типа диффов и патчей всяко поудобней ручного просмотра форм и модулей, ручного поиска изменений в них, и ручного же слияния своих изменений и тех, которые сделали 1сники.

                                    Пильщику конфигурации один хрен страдать. Просто с текстовыми файлами вместо проприетарного формата, имхо, он страдал бы чуть меньше.
                                    Ответить
                                    • > Взялся за допилку конфы, к которой 1с выпускает изменения

                                      Они не выпускают изменения. Они выпускают интерпретатор для документооборота, и все. 1С и рарус, примерно тоже самое что php и joomla.

                                      >У текстовых файлов еще плюс есть - ненулевая вероятность на автомате наложить дельту между изкоробочной и своей версией на новую изкоробочную.

                                      Я выше писал про windiff, если не лень, то можно копировать текст из разных конфигураций. Обычно изменения интересуют только в одной(м) обработке/документе, а это не накладно по времени.
                                      Ответить
                                  • > just as planned
                                    Критикуешь - предлагай. Предложи более удобный способ слияния местных изменений конфы, и изменений, которые за это время сделало 1с.

                                    Варианты "не пилить конфу вообще, юзать как есть" и "не обновляться, а по 5 лет пилить на основе версии со времен мамонтов" не принимаются как копетанские и очевидные.

                                    Естественно, что вся эта лабуда рассматривается не с позиции конечного пользователя (которому по-хорошему вообще нехер лезть в конфигурятор), а с позиции 1с-франчайзи, который делает свою конфу на основе стандартной, или мальчика-программиста, которому начальник поручил что-то подпилить в их 1ске.
                                    Ответить
                                      • > 1С ругают те, что навижен не видел
                                        Блин, вот в моих словах уже всё нашли: и "предложение юзерам накатывать патчи самостоятельно" и "ругань 1с". Почему один я в них ничего из этого не вижу?..
                                        Ответить
                                    • в чем проблема с объединением, на том же инфостаре выложены сотни примеров возможных объединений, на практике применяется постоянно.
                                      по поводу мальчиков программистов дешевых, после которых звонят клиенты и просят хотя бы вернуть как было...бекапы это вообще отдельная тема для развговора
                                      Ответить
                          • выгружать конфу в XML из конфигуратора так и не научились что ле? кнопка прям под носом же. модули выгружаются в тхт, формы - в XML, макеты в mxl. в чем проблема-то? даже скд можно из коробки выгрузить в XML и сиди себе объединяй.
                            Ответить
                        • Волшебные люди написали для 7.7 разборщик MD-файла с конфигурацией в набор текстовых файлов с ресурсами. Эти файлы можно коммитить, сравнивать, только вот перед каждой отправкой надо разобрать файл, а после получения - собрать, перезапустить одноэску, и прочие развлечения.
                          Само собой, никому такие сложности не нужны, контроль версий часто сводится к "забэкапили на всякий, руками поправили/перенесли, сохранили, залили потребителю".
                          Потому, в нашей реальности, в шараге будет храниться где-то количество конфигураций по числу обслуживаемых объектов помножить на правки.
                          Грустно, но правда. В одной знакомой конторе именно так. Там ни небо, ни Будда не знают, что, где, как и зачем.
                          В восьмёрке что-то там иначе, но общая суть ада говна сохраняется.
                          Ответить
                        • С контролем версий есть выход - "хранилище конфигурации". Это штука для параллельной разработки, и хранит историю изменений, позволяет сравнивать версии, откатывать.
                          Но штука местами ОООЧЕНЬ тормозная, остальными местами просто медлительная (10-20 секунд), и вылетает часто (приходится перезаходить в конфигуратор), в общем, как все в России - идея хорошая, реализация страдает...
                          Ответить
              • Обновление вроде не должно попячить существующий объект, если только нет совпадающего имени.
                А вот все ссылки на него в конфигурации будут прибиты.
                В любом случае, код из топика где-то лежит. Если это внешняя обработка, то пофиг на обновление базы, если внутри - его самого обновление и грохнет.
                По-моему, так.
                Ответить
        • Ну а если конфигурация стоит на поддержке и изменять ничего категорически нельзя, то как тогда быть. Хотя всегда можно добавить свой регистр сведений и в нем все реализовать!
          Ответить
  • Блин столько демагогии можно было просто в свойство справочника добавить, напрямую записать в РС ЗначениеСвойствОбъктов и не надо ничего переписывать, без головняков с обновлением, а код бредовый по определению.
    Ответить
    • Вот да, ЗначенияСвойствОбъектов - довольно универсальная штука и здесь бы подошла, я бы еще на месте 1С-овцев добавил аналогичный рег. свед. с периодичностью, а если еще добавить рег. свед. с двумя измерениями произвольного типа, цены бы не было.
      Ответить
    • Значение свойств объектов, если я не ошибаюсь, это из БСП. Т.е. теоретически в конфе этого функционала может не быть.
      Ответить
  • Тем более, что в запросе, которым получали службы доставки можно было сразу получить и значение свойств с необходимым определением.
    Ответить
  • позабавило выражение ---------- КонецЕсли; Ваще код на русском смотриться сильно избыточно. Разработчики могли бы запилить и на английском, видимо с ним нелады совсем были.
    Ответить
    • не расстраивайтесь вы так, Николай Николаевич. у вас еще все впереди, вы еще станете настоящим программистом и покажите всем вершины кодинга!
      Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8