1С, что ты делаешь с ГТД, прекрати!

Что меня удивляет в 1С, так это склонность их методистов к внезапным порывам души, к внезапным изменениям в коде ради мнимых улучшений. А в итоге после этих изменений то, что работало у клиента, работать перестает. И клиент обращается к программисту.

Вот недавно ко мне обратился клиент — у него перестала работать загрузка таможенной декларации из файла XML.

«Разбор полётов» показал, что проблема в том, что при попытке создать группу или элемент с одним или нескольким пробелом в начале система ругается на неуникальный номер ГТД.

Я обратился на Мисту, у меня было два подозрение — это особенность релиза или изменения в конфигурации БП3.

У клиента был платформа 8.3.17.2300 и релиз БП 3.0.96.35.

Смоделировал у себя в типовой БП3 ситуацию, записал несколько ГТД с пробелами и без:

1С позволила их записать, на уникальность не ругалась. Причем релиз платформы у меня был более поздний, чем у клиента, 8.3.18.1483. Следовательно, проблема не в релизе.

Тогда я обновил базу до релиза БП 3.0.96.30. Теперь при попытке записать уже существующий элемент с пробелом получал ошибку уникальности:

Анализ кода конфигурации показал, что 1С добавила код, который удаляет пробелы перед записью:

Процедура ПередЗаписью(Отказ)
    
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
    Если НЕ ЭтоГруппа Тогда
        Реквизиты = Справочники.НомераГТД.РегистрационныйНомерИСтранаВвоза(Код);
        ЗаполнитьЗначенияСвойств(ЭтотОбъект, Реквизиты, "РегистрационныйНомер,СтранаВвозаНеРФ");
        Код = СокрЛП(Код);
    КонецЕсли;
    
КонецПроцедуры

Вот зачем, спрашивается? Как никогда, вспоминается фраза: «Работает? Руками не трогай!»

Хотя, конечно, те, кто писал код с использованием пробелов, тоже хороши.

Объем факт: 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 4

  1. fajij28770:

    бггг, скажи спасибо кормильцам с селезневской улицы за 1800р.

  1. 20.07.2021

    […] Недавно столкнулся с ужасно написанным кодом, который в итоге привел у клиента к ошибкам. Сама потребность поменять код возникла в обработке загрузке таможенной декларации из ГТД, о которой я писал в прошлой статье. […]

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *