Добавление стран из классификатора сохраненного в таблице значений

В связи с тем, что в новой форме счет-фактуры указываются коды стран-производителей товара, столкнулся с ситуацией, когда в классификаторе стран находится много стран-дублей, а коды стран не соответствуют общероссийскому классификатору. Чтобы в дальнейшем, при добавлении стран, ситуация не повторялась решено было реализовать механизм позволяющий только выбирать страну из классификатора (предварительно сохраненного в ТаблицеЗначений).

1. Был взят классификатор стран со страницы http://klassifikators.ru/oksm

2. Скопированный классификатор вставлен в Excel, затем загружен в ТаблицуЗначений в 1C

3. ТаблицаЗначений сохранена в файл 

4. В базу добавлена константа — «Путь к классификатору стран мира» (Константа.ПутьОКСМ)

5. В форму списка справочника ОКСМ добавлена кнопка «Добавить из классификатора стран мира» с формулой «ПриВводеСтроки()»

6. В модуль формы списка добавлен следующий код:

 

Процедура ПриВводеСтроки()

Если ФС.СуществуетФайл(Константа.ПутьОКСМ)=0 Тогда

Сообщить(«Не найден классификатор стран!»);
СтатусВозврата(0);
Возврат;

КонецЕсли;

ТабЗнач=СоздатьОбъект(«ТаблицаЗначений»);
ЗначениеИзФайла(Константа.ПутьОКСМ,ТабЗнач,0);
СпрСтрана=СоздатьОбъект(«Справочник.ОКСМ»);
СпрСтрана.ВыбратьЭлементы();


Пока СпрСтрана.ПолучитьЭлемент() = 1 Цикл

Стр=«»;
Если ТабЗнач.НайтиЗначение(СпрСтрана.Код,Стр,«Код»)<>0 Тогда

ТабЗнач.УдалитьСтроку(Стр);

КонецЕсли;

КонецЦикла; 


ВыбСтрока=«»;
Если ТабЗнач.ВыбратьСтроку(ВыбСтрока,«Выберите страну для добавления»)<>1 Тогда

СтатусВозврата(0);
Возврат;

КонецЕсли;


Если ВыбСтрока = 0 Тогда

СтатусВозврата(0);
Возврат;

КонецЕсли;


СпрСтрана.Новый();
СпрСтрана.Код = ТабЗнач.ПолучитьЗначение(ВыбСтрока,«Код»);
СпрСтрана.Наименование = ТабЗнач.ПолучитьЗначение(ВыбСтрока,«Страна»);
СпрСтрана.Записать();

Форма.Обновить();

КонецПроцедуры


Теперь пользователи могут добавлять страны только из классификатора:

Классификатор в ТаблицеЗначений


Из открывающейся для выбора таблицы убраны уже присутствующие в справочнике страны — для исключения добавления повторов. 

Прилагаю таблицу значений, выгруженную в файл.

Надеюсь, кому-нибудь поможет.

1 Comment

  1. jobkostya1c8

    Интересное решение.

    Reply

Leave a Comment

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