Конвертация реквизитов в дополнительные реквизиты

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Алексей Великий

Дата регистрации: 24.07.2012
Сообщений: 226

«Добрый день. Помогите, пожалуйста, разобраться в следующей проблеме. <br><br>У меня есть самописная конфигурация — источник, из справочника «Контрагенты» которой необходимо выгрузить данные в аналогичный справочник конфигурации «Управление торговлей ред. 11». Все бы ничего, но часть данных должна выгружаться в дополнительные реквизиты конфигурации-приемника (т.е. используется стандартный типовой механизм дополнительных реквизитов и сведений). <br><br>Как я пишу правила конвертации для переноса данных в дополнительные реквизиты: <br><br>Т.к. доп. реквизиты в конфигурации УТ 11 хранятся в табличных частях справочников, то для ПКО «Контрагенты» я делаю сначала ПКГС (Правило конвертации группы свойств) без указания источника, но с указанием приемника — ДополнительныеРеквизиты. В событии ПКГС «ПередОбработкой» пишу следующий код: <br><br>КоллекцияОбъектов = Новый ТаблицаЗначений;<br>КоллекцияОбъектов.Колонки.Добавить(«Свойство»);<br>КоллекцияОбъектов.Колонки.Добавить(«Значение»);<br>Строка = КоллекцияОбъектов.Добавить(); <br><br>Далее в самих ПКГС для кадого реквизитов «Свойство» и «Значение» табличной части «ДополнительныеРеквизиты» делаю соответствующие ПКС (правила конвертации свойств) без указания источника, но с указанием приемника и для каждого приемника программно указываю, какие значения они должны принимать. Значения реквизитов указываю правильно. <br><br>После выгрузки-загрузки проверяю, все ли загрузилось в конфигурацию-приемник и вижу, что в форме элемента справочника «Контрагенты» дополнительные реквизиты не заполнены, хотя в табличную часть «ДополнительныеРеквизиты» этого справочника они добавились (посмотрел с помощью консоли запросов). В чем моя ошибка?»

ZhAmAn

Дата регистрации: 23.12.2010
Сообщений: 1333

А в УТ включены доп.реквизиты?Состав настроен?

Алексей Великий

Дата регистрации: 24.07.2012
Сообщений: 226

Доп. реквизиты включены, состав настроен — на форме элемента справочника «Контрагенты» элементы форм для заполнения доп. реквизитов есть, но они ничем не заполнены, хотя в табличной части «ДополнительныеРеквизиты» они заполнены.

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

«Копайте» в направлении заполнения поля «Свойство» доп.реквизитов — возможно определены для справочника «Контрагенты» одни свойства, а в ТЧ заполняются другие. Во вложении пример заполнения доп.сведений и доп.реквизитов для справочника «Номенклатура» (я делал выгрузку из «самописки» 7.7 в УТ 11 версии 1.4). Там обработчиках для «Правил конвертации» выполняется алгоритм, который корректирует какие-либо ошибки если произошла путаница при заполнении (как подстраховка).

Показывать по
10
20
40
сообщений

  Маркет42 - Место для твоих разработок  

Конвертация реквизита в дополнительный реквизит.

Я
   Nikitvol

02.07.13 — 15:13

Всем здрасте.

Пишу правило обмена для переноса некоторых данных из УПП 1.2 в УТ 11.1.

Проблема возникла при написании правила конвертации справочника Контрагенты (УПП) в справочник Партнеры (УТ). Нужно один реквизит из справочника Контрагенты сконвертировать в дополнительный реквизит справочника Партнеры.

Не могу разобраться, как это сделать? Подскажите плиз.

Может у кого есть рабочий пример?

  

Партнерская программа EFSOL Oblako

   Amra

1 — 02.07.13 — 15:14

Что такое «дополнительный реквизит»?

   ДенисЧ

2 — 02.07.13 — 15:14

(1) Это такой реквизит, только дополнительный…

   Aprobator

3 — 02.07.13 — 15:20

бггг.

   kosts

4 — 02.07.13 — 15:25

(2) Наверное имеется ввиду дополнительные свойства…

   Maxus43

5 — 02.07.13 — 15:26

(4) а смысл это при обменах? оно долго не живёт, доп свойство то

   mikecool

6 — 02.07.13 — 15:26

что то у меня сегодня модуль телепат отключен

   mikecool

7 — 02.07.13 — 15:27

(4) (5) вы не о том думаете )

   kosts

8 — 02.07.13 — 15:29

(7) Ты прав, я думаю уже пора домой идти…

   Aprobator

9 — 02.07.13 — 15:30

(8) нефиг вообще из дома выходить ) Эх, поработать что ли?

   mikecool

10 — 02.07.13 — 15:32

(9) хватит уже хвастаться ) в отпуске ремонт делаешь?

   DexterMorgan

11 — 02.07.13 — 15:41

(1) Дополнительные реквизиты в УТ — это табличная часть, в данном случае у спр. «Партнеры», с реквизитами Свойство, Значение.

(0) А в чем проблема? У тебя есть ПКО в нем ПГКС «ДополнительныеРеквизиты», в нем ПКС «Свойство», ПКС «Значение». Для свойство нужно создать ПКО, которое ищет в ПланеВидовХарактеристик ДопРевизитыИСведения элемент (по наименованию например) источник не указываешь. Для «значения» тоже создаешь ПКО, а в качестве источника будет реквизит справочника Контрагенты (УПП)

   Aprobator

12 — 02.07.13 — 15:43

(10) удаленка. Н работе появлюсь, только когда начальство очень скучать начинает )

  

Nikitvol

13 — 04.07.13 — 07:45

(11) Сделал немного по другому, но подсказка помогла. Спасибо!

Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru

Добрый день. Помогите, пожалуйста, разобраться в следующей проблеме. У меня есть самописная конфигурация — источник, из справочника «Контрагенты» которой необходимо выгрузить данные в аналогичный справочник конфигурации «Управление торговлей ред. 11». Все бы ничего, но часть данных должна выгружаться в дополнительные реквизиты конфигурации-приемника (т.е. используется стандартный типовой механизм дополнительных реквизитов и сведений). Как я пишу правила конвертации для переноса данных в дополнительные реквизиты: Т.к. доп. реквизиты в конфигурации УТ 11 хранятся в табличных частях справочников, то для ПКО «Контрагенты» я делаю сначала ПКГС (Правило конвертации группы свойств) без указания источника, но с указанием приемника — ДополнительныеРеквизиты. В событии ПКГС «ПередОбработкой» пишу следующий код: КоллекцияОбъектов = Новый ТаблицаЗначений; Далее в самих ПКГС для кадого реквизитов «Свойство» и «Значение» табличной части «ДополнительныеРеквизиты» делаю соответствующие ПКС (правила конвертации свойств) без указания источника, но с указанием приемника и для каждого приемника программно указываю, какие значения они должны принимать. Значения реквизитов указываю правильно. После выгрузки-загрузки проверяю, все ли загрузилось в конфигурацию-приемник и вижу, что в форме элемента справочника «Контрагенты» дополнительные реквизиты не заполнены, хотя в табличную часть «ДополнительныеРеквизиты» этого справочника они добавились (посмотрел с помощью консоли запросов). В чем моя ошибка?

не изучил принцип работы доп реквизитов там вроде еще наборы надо назначить для видов объектов

например в форме справочника уже показывает доп реквизиты, хотя самого объекта в базе еще нет, да и ТЧ у него пустая — как думаешь, откуда они появляются?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Пример написания правил обмена (КД 2.0) для переноса дополнительных реквизитов справочника «Номенклатура», в том числе перенос ПВХ с разными типами значений.

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

Задача: с помощью правил обмена перенести Дополнительные реквизиты номенклатуры из «старой торговой программы» в УНФ. В обеих конфигурациях дополнительные реквизиты хранятся в табличной части справочника «Номенклатура» и используется план видов характеристик «ДополнительныеРеквизитыИСведения» и справочник «НаборыДополнительныхРеквизитовИСведений». В принципе это все, что для нас важно.

     Шаг 1. Создаем правило обмена для справочника «НаборыДополнительныхРеквизитовИСведений». Он нам понадобится, чтобы потом создать правило обмена для ПВХ.

(скрин 1)

    Шаг 2. Создаем правило обмена для ПВХ «ДополнительныеРеквизитыИСведения». Для каждого элемента пвх нужно указать тип значения. ТипЗначения — это стандартный реквизит ПВХ, но в конвертации он не отображается как реквизит и его нельзя выбрать в качестве приемника. Так что для передачи типа значения будем использовать параметры объекта. Создаем для плана видов характеристик новый ПКС: указываем «Передать данные в параметр», источник — пустой, приемник — «Типы». 

(скрин 2)

Дальше есть два способа — для обмена между идентичными конфигурациями (попроще) и для всех остальных.

Шаг 2 способ №1. Если у вас обмен между двумя одинаковыми конфигурациями, то вы можете использовать функцию ЗначениеВСтрокуВнутр /ЗначениеИзСтрокиВнутр. В созданном ПКС добавляем следующий код «перед загрузкой»:

ТипыСвойства = Источник.ТипЗначения.Типы();
Значение = ЗначениеВСтрокуВнутр(ТипыСвойства);

В ПКО плана видов характеристик добавляем процедуру «После выгрузки»:

Типы = ЗначениеИзСтрокиВнутр(ПараметрыОбъекта.Получить("Типы"));
Объект.ТипЗначения = Новый ОписаниеТипов(Типы );

Готово.

Шаг 2 способ №2. Если конфигурации не одинаковые, то предыдущий способ работать не будет. При вызове функции ЗначениеИзСтрокиВнутр тип значения не будет определен (будет Неопределено). Мой вариант — записать типы значений в строку, а затем расшифровать ее на стороне приемника.

ПКС «Типы» «перед загрузкой»:

ТипыСвойства = Источник.ТипЗначения.Типы();

МассивТиповСтроками = "";

Для Каждого ТипСвойства Из ТипыСвойства Цикл
МассивТиповСтроками = МассивТиповСтроками+ нрег(СтрЗаменить(Строка(ТипСвойства)," ","")) + ";";
КонецЦикла;

Значение = МассивТиповСтроками;

ПКО плана видов характеристик «после выгрузки»:

ТипыСтрокой = ПараметрыОбъекта.Получить("Типы");

МассивТиповСтрокой = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТипыСтрокой, ";");
МассивТипов = Новый Массив;

Для Каждого ТипСтрокой Из МассивТиповСтрокой Цикл

Если ТипСтрокой = "дополнительноезначение" Тогда
МассивТипов.Добавить(Тип("СправочникСсылка.ЗначенияСвойствОбъектов"));
ИначеЕсли ТипСтрокой = "контрагент" Тогда
МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты"));
//ИначеЕсли ...
КонецЕсли;
КонецЦикла;

Объект.ТипЗначения = Новый ОписаниеТипов(МассивТипов);

Готово.

    Шаг 3. В ПКО справочника «Номенклатура» создаем стандартным способом ПКС для табличной части «Дополнительные реквизиты» и ее реквизитов (скрин 7)

Для ПКС реквизита «Значение» пишем в «перед выгрузкой»:

Если ТипЗнч(ОбъектКоллекции.Значение) = Тип("СправочникСсылка.Контрагенты") Тогда
ИмяПКО = "Контрагенты";
ИначеЕсли ТипЗнч(ОбъектКоллекции.Значение) = Тип("СправочникСсылка.ЗначенияСвойствОбъектов") Тогда
ИмяПКО = "ЗначенияСвойствОбъектов";
// ИначеЕсли...
КонецЕсли;

Теперь все готово. Можно пробовать выгружать.

В данной заметке хотелось бы рассмотреть вопрос: Как загрузить дополнительные реквизиты номенклатуры при помощи обработки с диска ИТС «Загрузка данных из табличного документа (управляемые формы)»?

В качестве примера, будем использовать конфигурацию 1С:ERP Управление предприятием 2, аналогичным смособом можно будет загрузить в Управление торговлей 11 или любую другую, подобную конфигурацию.

Дополнительные реквизиты хранятся в табличной части «ДополнительныеРеквизиты» справочника «Номенклатура». Из обработки «Загрузка данных из табличного документа» можно добраться только к табличной части одной, выбранной номенклатуре, через тип данных «Позиция номенклатуры».

Позиция номенклатуры

Но такой способ нам не подходит, т.к. мы будем загружать дополнительные реквизиты для списка номенклатуры. Для примера загрузим одну номенклатуру и два ее дополнительных реквизита: «Формат» и «Толщина».

Загрузка из табличного документа

Настроим поиск номенклатуры по наименованию из колонки с номером один.

Настройка загрузки реквизитов

Теперь немного займемся программированием. Откроем событие «При записи объекта» и добавим туда следующий программный код:

Объект.ДополнительныеРеквизиты.Очистить(); // Предварительно удаляем все доп. реквизиты. Если не нужно — закомментировать.ДопСвойства = Новый Соответствие;
ДопСвойства.Вставить(«11», 91); // Наименование свойства, номер ячейки
ДопСвойства.Вставить(«АКЦИЯ», 92);
ДопСвойства.Вставить(«Размер,мм», 93);
ДопСвойства.Вставить(«Формат», 94);
ДопСвойства.Вставить(«Номер цвета», 95);
ДопСвойства.Вставить(«Цвет», 96);
ДопСвойства.Вставить(«шт./м2», 97);
ДопСвойства.Вставить(«шт. / палетта», 98);
ДопСвойства.Вставить(«вес, кг/шт.», 99);

Для Каждого

ЭлементДопСвойства Из ДопСвойства ЦиклТекСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ЭлементДопСвойства.Ключ + » (» + Объект.ВидНоменклатуры + «)», Ложь);
   
ТекЗначение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ТекстыЯчеек[ЭлементДопСвойства.Значение], Ложь);
    Если Не
ЗначениеЗаполнено(ТекСвойство) Тогда
       
Сообщить(«Не удалось найти свойство: «»» + ЭлементДопСвойства.Ключ + » (» + Объект.ВидНоменклатуры + «)»»»);
        Продолжить;
    КонецЕсли;
    Если Не
ЗначениеЗаполнено(ТекЗначение) Тогда
       
Сообщить(«Создаем новое значение «»» + ТекстыЯчеек[ЭлементДопСвойства.Значение] + «»» для свойства «»» + ТекСвойство + «»»»);
       
НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
       
НовоеЗначение.Владелец = ТекСвойство;
       
НовоеЗначение.Наименование = ТекстыЯчеек[ЭлементДопСвойства.Значение];
       
НовоеЗначение.Записать();
       
ТекЗначение = НовоеЗначение.Ссылка;
    КонецЕсли;
МассивСтрок = Объект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура(«Свойство», ТекСвойство));
    Если
МассивСтрок.Количество() = 0 Тогда
       
ДопРеквизит = Объект.ДополнительныеРеквизиты.Добавить();
    Иначе
       
ДопРеквизит = МассивСтрок[0];
    КонецЕсли;
   
ДопРеквизит.Свойство = ТекСвойство;
   
ДопРеквизит.Значение = ТекЗначение;

КонецЦикла;

Объект.Записать();

В соответствие «ДопСвойста» нужно вставить столько записей, сколько требуется загрузить дополнительных реквизитов. В качестве ключа указываем текстовое наименование дополнительного реквизита, а в качестве значения — номе строки табличного документа, где это значение храниться.

Рекомендовать в новости

Настройка правил конвертации полей в дополнительные реквизиты

Гость

0

06.03.2012 — 18:45


Есть конфигурация Конвертация данных, редакция 2.1 (2.1.5.1) В ней база источник 8.1 база приемник 8.2
у источника- Справочник Контрагент поле «Торговый представитель»
у приемника Справочник Контрагент дополнительный реквизит «Торговый представитель».
Как Настроить правило конвертации объектов?
У источника доступно поле ТорговыйПредставитель а у приемника такого поля нет а есть поля: Значение,Свойство, Текстовая Строка.
Пробовал подставить поле- Значение в приемнике- результата никакого.

Гость

1

07.03.2012 — 15:16

ап

bma1

2

07.03.2012 — 16:58

2(2) купи или скачай книжку по КД. там такой пример описан.

Гость

3

07.03.2012 — 19:26

автора и название книги можно услышать? в книге Ольги узнецовой «Конвертация данных» такоо примера нет.

Гость

4

08.03.2012 — 08:36

ап

bma1

5

08.03.2012 — 13:44

2(4) Бояркин и Филатов «Конвертация данных» начинать читать со страницы 135…

Гость

6

08.03.2012 — 16:12

Создал у приемника группу «Дополнительные реквизиты» она является табличной частью, добавляю в нее поля Свойство и Значение. В источнике перед выгрузкой пишу Значение=1. При выгрузке данных из источника вываливается ошибка «Поле объекта не обнаружено (ДополнительныеРеквизиты)». В чем может быть Дело? тоже самое с табличной частью Контактная информация.
Приемник УТ 11.0.7.13

bma1

7

08.03.2012 — 16:48

2(7) ты обращаешся к доп. табличной части как к реквизиту и вот результат… проверь табличную часть на наличие такого доп.реквизита, и если нет — создай новую строку.

Гость

8

08.03.2012 — 17:33

как это будет выглядеть в виде кода? можно посмотреть?

bma1

9

08.03.2012 — 17:41

2(9) Что-то типа: НоваяСтрока = Приемник.ДополнительныеРеквизиты.Добавить() и далее заполняешь ее значения.

Гость

10

09.03.2012 — 17:28

1-prohor32 >у приемника Справочник Контрагент дополнительный реквизит «Торговый представитель». Дополнительный реквизит — это как?

По мере использования 1С, у многих предприятий возникает потребность создать для какого-либо объекта информационной базы реквизит, позволяющий хранить дополнительную информацию, например, добавление дополнительного специфического, характерного для вашей продукции описания номенклатуры в текстовом виде или же в виде числовых характеристик. Для удовлетворения данной потребности есть два пути либо заказать доработку конфигурации у фирмы 1С:Франчайзи, либо воспользоваться механизмом добавления дополнительных реквизитов.

В данной статье будет описан второй вариант. Использование механизма дополнительных реквизитов позволяет добавить реквизит в режиме 1С Предприятия, не прибегая к помощи «конфигуратора». Если ваша цель ограничена лишь добавлением дополнительной аналитики объекта и последующего использования этой аналитики в типовых отчетах (например, использование дополнительного реквизита в качестве условия отбора или простого вывода в табличный документ), то не понадобится даже помощь программиста. Однако стоит сразу оговориться, что более сложные задачи, связанные с дополнительным реквизитом, например, вывод в печатную форму, все же потребует изменений в программном коде.

Дополнительные реквизиты можно найти на форме объекта – Ещё – Изменить состав дополнительных реквизитов или же через НСИАдминистрирование – Общие настройки, как показано на рисунке 1. На данном рисунке видно, что сначала необходимо проставить флажок для включения интересующей нас опции. Так же видно, что помимо реквизитов, есть и дополнительные сведения. С точки зрения пользователя они отличаются тем, что доп. реквизиты вынесены на форму, а сведения вызываются отдельной формой специальной командой из кнопки Ещё на форме объекта.

НСИАдминистрирование – Общие настройки

Рисунок 1 – Настройка дополнительных реквизитов и сведений через Общие настройки

На рисунке 2 можно увидеть окно, в котором можно увидеть список доп. реквизитов, а также возможность создать их.

Дополнительные реквизиты


Рисунок 2 – Окно «Дополнительные реквизиты»

На рисунке 3 изображено окно непосредственного создания нового реквизита.

Пользователю доступны следующие настройки:

1.     Наименование – Имя реквизита, которое видит пользователь

2.     Для разработчиков, Имя – Уникальное имя реквизита, по которому разработчик сможет получатьизменять значения, модифицировать элемент формы связанный с доп. реквизитом.

3.     Тип значения:

  • Строка – доступна настройка длины строки, настройки элемента ввода элемента (однострочноемногострочное поле ввода)
  • Число – доступны настройки длины числа, точности, флажок неотрицательное, представления нуля и отрицательных чисел.
  •  Булево – Просто флажок.
  • Дата – Есть возможность выбора формата даты, состава даты (дата, время, дата и время), а также представления пустой даты
  • Составной тип данных – Пользователь сам выбирает тип данных при вводе.
  • Дополнительные значения – При выборе данного типа значения задаются на вкладке «значения», рисунок 3.
  • Пользователь – значение из справочника пользователи.

4.     Настройки видимости, доступности и обязательности заполнения элемента формы.

Окно создания дополнительного реквизита

Рисунок 3 – Окно создания дополнительного реквизита

Добавим дополнительные реквизиты для справочника Организации, рисунок 4, 5. Дополнительные реквизиты, в зависимости от структуры элемента формы, добавляются на закладку «Дополнительно» или в подраздел «Дополнительные реквизиты» в порядке создания реквизитов.

Добавленные реквизиты

Рисунок 4 – Добавленные реквизиты

Элементы формы дополнительных реквизитов

Рисунок 5 – Элементы формы дополнительных реквизитов

Теперь попробуем применить новые элементы справочника Организации на примере отчета «Универсальный отчет» и выведем их на экран. Как видно из рисунка 6, к новым реквизитам (у данных реквизитов после названия в скобках указан справочник, которому они принадлежат) можно обратиться «через точку».

Использование новых реквизитов при настройке варианта отчета

Рисунок 6 – Использование новых реквизитов при настройке варианта отчета

Вывод дополнительных реквизитов на экран с помощью универсального отчета

Рисунок 7 – Вывод дополнительных реквизитов на экран с помощью «универсального отчета»

В итоге на рисунке 7 мы видим, что возможно добавление новой аналитики в отчет, не прибегая к помощи разработчиков используя механизм дополнительных реквизитов.

Нужна помощь с 1С?

Мы можем взять на себя ваш бухгалтерский учет. Вам не нужно будет думать о расчете налогов и сдаче отчетности. Мы будем вести финансовую ответственность за ошибки. Мы — команда профессионалов, а не один бухгалтер, мы не заболеем, не пропадем и не уйдем внезапно в отпуск. Сосредоточьтесь на управлении. А учет и отчетность мы возьмем на себя. Чтобы получить бесплатную консультацию по автоматизации своего бизнеса Вы можете пообщаться с нашими специалистами в офисе компании или позвонив по телефону: 8-800-707-01-02.

Сопровождение 1С

Наш специалист

Владислав Быков

Специалист отдела разработки


Чем мы можем быть вам полезны?

Понравилась статья? Поделить с друзьями:
  • Конгресс инновационная практика наука плюс бизнес
  • Конкурентные стратегии предприятий малого бизнеса
  • Конкурентные стратегии транснациональных компаний
  • Конкурс вопрос ответ для веселой компании смешные
  • Копицентр восстания 1 санкт петербург часы работы