1С, что ты делаешь с ГТД, прекрати!
Что меня удивляет в 1С, так это склонность их методистов к внезапным порывам души, к внезапным изменениям в коде ради мнимых улучшений. А в итоге после этих изменений то, что работало у клиента, работать перестает. И клиент обращается к программисту.
Вот недавно ко мне обратился клиент — у него перестала работать загрузка таможенной декларации из файла XML.
«Разбор полётов» показал, что проблема в том, что при попытке создать группу или элемент с одним или нескольким пробелом в начале система ругается на неуникальный номер ГТД.
Я обратился на Мисту, у меня было два подозрение — это особенность релиза или изменения в конфигурации БП3.
У клиента был платформа 8.3.17.2300 и релиз БП 3.0.96.35.
Смоделировал у себя в типовой БП3 ситуацию, записал несколько ГТД с пробелами и без:
1С позволила их записать, на уникальность не ругалась. Причем релиз платформы у меня был более поздний, чем у клиента, 8.3.18.1483. Следовательно, проблема не в релизе.
Тогда я обновил базу до релиза БП 3.0.96.30. Теперь при попытке записать уже существующий элемент с пробелом получал ошибку уникальности:
Анализ кода конфигурации показал, что 1С добавила код, который удаляет пробелы перед записью:
Процедура ПередЗаписью(Отказ) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Если НЕ ЭтоГруппа Тогда Реквизиты = Справочники.НомераГТД.РегистрационныйНомерИСтранаВвоза(Код); ЗаполнитьЗначенияСвойств(ЭтотОбъект, Реквизиты, "РегистрационныйНомер,СтранаВвозаНеРФ"); Код = СокрЛП(Код); КонецЕсли; КонецПроцедуры
Вот зачем, спрашивается? Как никогда, вспоминается фраза: «Работает? Руками не трогай!»
Хотя, конечно, те, кто писал код с использованием пробелов, тоже хороши.
Объем факт: 1 час.
бггг, скажи спасибо кормильцам с селезневской улицы за 1800р.
Я думаю, лучше зарабатывать на качественном продукте, а не на исправлении косяков.
И?