1С:Предприятие 7.7 Счет-Фактура 2012г. Обработка для загрузки, проверки, согласования ОКСМ (Классификатор стран мира)

0. Юрий Щербаков (ufo58) 160 24.01.12 09:02 Сейчас в теме
С выходом СчФ 2012г. появилась необходимость печати кодов стран мира. Значит их нужно где-то брать, загружать, согласовывать.



Перейти к публикации

Комментарии
1. Сергей Коцюра (CheBurator) 3407 24.01.12 09:02 Сейчас в теме
Не хватает на форме возможности сопоставления полей для А-2 и А-3 в источнике и в справочнике (если справочник допилен, у мен янапример - допилен! ибо реально надо А-2). если сопоставление полей задано - грузим соотв.поле! если не задано - не грузим!
2. Юрий Щербаков (ufo58) 160 24.01.12 09:29 Сейчас в теме
(1) CheBurator,
"допиливать" типовую конфигурацию .... видимо была необхимость.
Но ....
Поля код Альфа-2 и Альфа-3, вообще-то для справки. Они у вас где-то используются?
В источнике (OKSM.dbf) есть еще информация.
И дата принятия кода (например), комментарии ... и еще там много чего.
С ними тоже что то нужно делать? Они тоже где-то используются?
И .... как мне угадать "нетиповые" реквизиты в вашей конфе?
Если "допилили" конфу - возьмите как "болванку" эту обработку. "Допилите" её.
Кстати, если покажете что получилось - буду признателен.
3. Юрий Щербаков (ufo58) 160 24.01.12 09:34 Сейчас в теме
(1) CheBurator,
хотя - идея интересная.
в настройках "угадать" дополнительные реквизиты справочника
и предложить пользователю их согласование
нужно подумать
10. Абдул Джабар (burik_limon) 27.06.12 09:49 Сейчас в теме
Очень многие допускают очень большую ошибку думая, что в конвертации нужно сочинять и писать правила для совершенно разных структур.. Автор статьи: Maniac | Редакторы: Defender aka LINN
Последняя редакция №5 от 29.09.10 | История
URL: http://kb.mista.ru/article.php?id=369

Ключевые слова: Конвертация данных, КД, Конвертация, Перенос остатков, Обмен данными


Дело в том, что в КД2.0 источником данных может являться не только объект ИБ (документ, справочник, перечисление, счет и т.д.), но и абсолютно произвольные данные.
Рассмотрим пошагово на примере (пример очень простой, но общий смысл, думаю, будет ясен):
Задача - перенести остатки по складам из ТиС в УТ.
1. Настраиваем Правила Конвертации Объектов - справочники "Номенклатура" и "Склады".
2. Создаем еще одно ПКО - источник не указываем, а приемником выступает документ "Корректировка записей регистров".
2.1. Добавляем ПКС " -> Дата", т.е. источник - пустой, приемник - реквизит документа "Дата" и устанавливаем галку поиска.
2.2. Теперь добавляем таким же образом ПКС для движений документа по регистру "ТоварыНаСкладах" (как группу), и добавляем в этой группе ПКС для свойств регистра - Номенклатура, Склад и Количество.
3. Добавляем Правило Выгрзуки Данных - в качестве ПКО указываем наше свежесозданное правило, способ выборки - "Произвольный алгоритм". Тут мы можем творить чудеса.
Теперь займемся собственно получением данных. Для того, чтобы создался необходимый документ, мы должны указать источник данных. В нашем случае это будет ТаблицаЗначений. Соответственно, в событии "Перед обработкой" инициализируем нужные данные:

ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Дата");
ВыборкаДанных.НоваяКолонка("ТоварыНаСкладах");

ВыборкаДанных.НоваяСтрока();
ВыборкаДанных.Дата = ДатаОкончания; //ДатаОкончания - реквизит обработки "Выгрузка данных"
ВыборкаДанных.ТоварыНаСкладах = СоздатьОбъект("ТаблицаЗначений");

ТоварыНаСкладах = ВыборкаДанных.ТоварыНаСкладах;
ТоварыНаСкладах.НоваяКолонка("Активность");
ТоварыНаСкладах.НоваяКолонка("ВидДвижения");
ТоварыНаСкладах.НоваяКолонка("Номенклатура");
ТоварыНаСкладах.НоваяКолонка("Склад");
ТоварыНаСкладах.НоваяКолонка("Количество");

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Остатки)
|Период с ДатаОкончания по ДатаОкончания;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция Остаток = КонОст(Количество);
|Группировка Номенклатура;
|Группировка Склад;
|"//}}ЗАПРОС
;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Отказ = 1;
Возврат; //В 8.0/8.1 Возврат использовать нельзя!
КонецЕсли;

Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
ТоварыНаСкладах.НоваяСтрока();
ТоварыНаСкладах.Активность = 1; //1/0 конвертируются в булевские Истина/Ложь
ТоварыНаСкладах.ВидДвижения = "Приход"; //Для перечислений достаточно указать имя значения, обработка загрузки вставит нужное значение
ТоварыНаСкладах.Номенклатура = Запрос.Номенклатура;
ТоварыНаСкладах.Склад = Запрос.Склад;
ТоварыНаСкладах.Количество = Запрос.Остаток;
КонецЦикла;
КонецЦикла;



Все. Что произойдет при выгрузке:
Система, определив, что ВыборкаДанных имеет тип "ТаблицаЗначений" начнет обычный обход этой таблицы через ВыбратьСтроки()/ПолучитьСтроку() и для каждой строки будет вызывать процедуру "ВыгрузитьПоПравилу". В созданном нами правиле источник не указан, однако обработка выгрузки в этом случае пытается получить значение из Источника (в нашем случе - ТЗ) по имени. То есть, добавив в таблицу колонку "Номер" и добавив соответствующее Правило Конвертации Свойств, мы получим при загрузке документ с этим номером. Далее, это же правило распростаняется и на группы свойств (таб. части, движения регистров и т.д.). То есть, система, дойдя до группы свойств "ТоварыНаСкладах" сделает то же самое. После загрузки данных в базе-приемнике будет создан документ "Корректировка записей регистров", который добавит остатки по всей номенклатуре, которая есть на складах.
Следует отметить, что кроме ТаблицыЗначений можно также использовать объекты "СписокЗначений" в 7.7 (Если, например, по данным строки документа нам надо в приемнике создать элемент справочника) и, соответственно, "Структура" для 8.x
4. Галина Орехова (orehova123) 25.01.12 13:25 Сейчас в теме
так работает или не работает, скажите кто-нибудь... пожаааалуйста :)
5. Юрий Щербаков (ufo58) 160 25.01.12 13:33 Сейчас в теме
(4) orehova123,
то что я выставил на сайте, работает и в типовой, и если не меняли спр.ОКСМ (Классификатор банков)
в другом случае, не все поля будут заполняться
6. nelse (nelse) 25.01.12 23:10 Сейчас в теме
Можно еще проще. ОКСМ лежит в свободном дуступе в интернете. Сохранить в нужном формате? не вопрос. Загрузить в 1С (даже если не использовать почти штатные возможности)? Такие средст здесь более чем достаточно. Но... имеет право жить.
7. Юрий Щербаков (ufo58) 160 26.01.12 10:29 Сейчас в теме
(6) nelse,
есть такие срадства - брать из инета для 7-ки
но .... мой опыт говорит, далеко не все (и далеко не всегда) имеют возможность качать из инета
эта обработка не относится к разряду "электронной поддержки", а работать нужно
более того, она почти разовая
изменения кодов стран - реже изменений КЛАДР (например)
так что локальная версия, в данном случае, надежней
8. Андрей Суханцов (&rew) 6 02.02.12 06:05 Сейчас в теме
Вещь нужная, хоть и разовая. Хотя сейчас этих "разов" будет приличное количество
9. элла иванова (2011b11) 04.04.12 13:36 Сейчас в теме
Спасибо за обработку нужная вещица, правда я согласна с &rew (Вещь нужная, хоть и разовая. Хотя сейчас этих "разовых" будет приличное количество), это точное утверждение на тему разовые.
Оставьте свое сообщение