Ошибка при записи организации с введенным ОКПО

1. mdzen 238 24.12.12 00:29 Сейчас в теме
При попытке записать данные ИП с ОКПО вида : 013ХХХХХ47 выдается ошибка " Контрольное число для кода по ОКПО не совпадает с рассчитанным". При проверке выяснилось, что в функции проверки кода есть следующие строки:
		Если ЭтоЮрЛицо Тогда
			КодПоОКПОДляРасчета = КодПоОКПО;
		Иначе
			КодПоОКПОДляРасчета = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(КодПоОКПО, "0");
		КонецЕсли;

Т.е. при обработке УдалитьПовторяющиесяСимволы удаляется лидирующий ноль и сбивается "развесовка разрядов", соответственно контрольное число получается не верным. Непонятно какой тайный смысл данной операции задуман у 1С-овцев.

Поправил следующим образом:

		Если ЭтоЮрЛицо Тогда
			КодПоОКПОДляРасчета = КодПоОКПО;
		Иначе
			КодПоОКПОДляРасчета = КодПоОКПО;
		КонецЕсли;
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kolianus 44 07.02.13 14:32 Сейчас в теме
Спасибо, замучился уже искать
3. inplas 17.02.13 16:14 Сейчас в теме
Спасибо. Помогло.

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

Объявление функции выглядит так: Функция КодПоОКПОСоответствуетТребованиям(КодПоОКПО,ЭтоЮрЛицо,ТекстСообщения = "") Экспорт

Более быстрый вариант нахождения места исправления (если вы не можете найти нужный модуль) - Глобальный поиск строки "УдалитьПовторяющиесяСимволы(КодПоОКПО, "0")" по модулям конфигуратора.
4. disnos 21.01.14 12:47 Сейчас в теме
Для информации в конфигурации Управление торговлей, редакция 11.1 (11.1.2.10) есть еще ошибка в расчете кода ОКПО.
ОбщиеМодули.РегламентированныеДанныеКлиентСервер
Строка 327:
КонтрольнаяСумма = КонтрольнаяСумма + Сред(КодПоОКПОДляРасчета,инд,1) * (инд + 2);

Должно быть:
КонтрольнаяСумма = КонтрольнаяСумма + Сред(КодПоОКПОДляРасчета,инд,1) * ?((инд + 2) = 11, 1, (инд + 2));

Смысл в том что развесовка разрядов не должна быть больше 10.
5. umka2008 22 19.10.21 20:54 Сейчас в теме
(4) Спасибо, совершенно верное решение, а то всю голову сломал ))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот