Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 06:30
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: И снова знатокам Конвертации данных!  (Прочитано 18929 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн boobzx

  • ***
  • Сообщений: 124
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2013-03-07
  • Сайт: 
  • Профессия: Ученик 1С
В общем объясню сначала вкратце, как в момент получения определенного справочника в ПКС запустить выгрузку Регистра Сведений с запросом на фильтр по ссылке этого справочник? А теперь подробнее и в картинках:) ну в общем я создал два ПКО (рис: снимок_1). . http://hostingkartinok.com/show-image.php?id=624265e1613a83ebbc5e1cfd53fde1b4 Пока эти два ПКО никак между собой не взаимосвязаны и выгружаются отдельно. В ПКО товары я выгружаю карточку товара (т.е. справочник номенклатура), у каждого товара есть свойства (хранятся они в регистре сведений(это как раз второе ПКО)), я хочу по наименованию товара запросом перебирать регистры сведений и найденные данные выгружать вместе с этим товаром(на данный момент у меня грузится весь регистр сведений без фильтрации по товару). Т.е. у меня есть товар "пряник", у него свойства в регистре сведений "Пряник, Вкус, Ваниль", Запросом я ищу первое измерение "пряник", если нахожу, то его переношу. Далее я во вкладе "алгоритмы/запросы" создал простецкий запрос:

ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект,
ЗначенияСвойствОбъектов.Свойство,
ЗначенияСвойствОбъектов.Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Объект.Наименование = &Наименование

И на этом застрял, мне нужно как то из ПКС товары, передавать наименование в этот запрос, и запускать соответственно выгрузку регистра сведения по каждому наименованию. Не знаю куда засунуть запрос, и как в него добавить параметр.

Возможно эффективнее будет создать таблицу значений, а потом уже подставлять в параметр запроса, но как в КД создать табзначений, и потом передать ее туда в запрос, и самое главное откуда этот запрос запускать??

По моей логике это должно выглядит так, идет сначала выгрузка товара, товар выгрузился который нам нужен, далее идет выгрузка регистра сведений и как раз через запрос устанавливаем параметр наименования(это структура с нашими товарами наименования) и выгружаем данные.

Четвертый день бьюсь-бьюсь! И никак. В итоге задача, нужно перенести с карточкой товара его свойства.


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
До конца не дочитал. Много текста. Хочу привести пример как выгружать записи регистров сведений по ссылкам справочников.

Например, у нас есть справочник сотрудники и регистр сведений Сотрудники_СвойстваСотрудника.

Для выгрузки этого регистра по ссылкам нам нужно в ПКО Сотрудники в обработчике событий после выгрузки написать следующий код:

НаборЗаписей = РегистрыСведений.Сотрудники_СвойстваСотрудника.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Сотрудник.Установить(Источник,Истина);
НаборЗаписей.Прочитать();

Для каждого Запись из НаборЗаписей Цикл

ВыгрузитьПоПравилу(Запись, , , , "Сотрудники_СвойстваСотрудника");

КонецЦикла;

Данный код инициирует ПКО регистра сведений и передаст туда выгружаемую запись регистра сведений.

Оффлайн boobzx

  • ***
  • Сообщений: 124
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2013-03-07
  • Сайт: 
  • Профессия: Ученик 1С
Да! все супер пример подошел, решил много своих проблем. Но осталось еще две. Первая, у меня ПВХ (источник) имеет свойства разных типов(составные) Снимок_1. Когда я выгружаю из источника, типы составных данных выгружаются корректно, НООО вот в приемнике, эти типы загружаются только одним...и все, хотя в приемнике тоже свойства составной тип Снимок_2. И в итоге получается, в приемнике, где тип строка или дата, Типы разные. Соответственно дата подставляется.. но при редактировании предлагается другой тип.
Добавлено: 18 Июл 2013, 10:24

Коллеги, неужели никто не подскажет почему идет смещение типов ПВХ при переносе? Я даже не знаю где копать, т.к. почитав формы, пишут что в КД программно тип в приемнике задать нельзя.

Последний раз редактировалось: boobzx; 18 Июл 2013, 10:24. Причина: Объединение сообщений

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
Да! все супер пример подошел, решил много своих проблем. Но осталось еще две. Первая, у меня ПВХ (источник) имеет свойства разных типов(составные) Снимок_1. Когда я выгружаю из источника, типы составных данных выгружаются корректно, НООО вот в приемнике, эти типы загружаются только одним...и все, хотя в приемнике тоже свойства составной тип Снимок_2. И в итоге получается, в приемнике, где тип строка или дата, Типы разные. Соответственно дата подставляется.. но при редактировании предлагается другой тип.
Добавлено: 18 Июл 2013, 10:24

Коллеги, неужели никто не подскажет почему идет смещение типов ПВХ при переносе? Я даже не знаю где копать, т.к. почитав формы, пишут что в КД программно тип в приемнике задать нельзя.

В ПКС же типы задаются, лучше заново выгрузи структуру в конверташку из обоих баз.

Оффлайн boobzx

  • ***
  • Сообщений: 124
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2013-03-07
  • Сайт: 
  • Профессия: Ученик 1С
Да! все супер пример подошел, решил много своих проблем. Но осталось еще две. Первая, у меня ПВХ (источник) имеет свойства разных типов(составные) Снимок_1. Когда я выгружаю из источника, типы составных данных выгружаются корректно, НООО вот в приемнике, эти типы загружаются только одним...и все, хотя в приемнике тоже свойства составной тип Снимок_2. И в итоге получается, в приемнике, где тип строка или дата, Типы разные. Соответственно дата подставляется.. но при редактировании предлагается другой тип.
Добавлено: 18 Июл 2013, 10:24

Коллеги, неужели никто не подскажет почему идет смещение типов ПВХ при переносе? Я даже не знаю где копать, т.к. почитав формы, пишут что в КД программно тип в приемнике задать нельзя.

В ПКС же типы задаются, лучше заново выгрузи структуру в конверташку из обоих баз.

Угу, задаются... Но есть одно большущее но! В ПВХ я перегружаю только наименования. Больше ничего нет. Я типы могу задать только реквизитам (В ПКС), А у меня ПВХ состоят из наименования и ТипСвойста, которые определяются составным типом в свойстве Объекта, а эта хрень называется в свойстве ПВХ - Типы Значения Характеристик. Вот у меня такое ощущение, что кд при приеме берет самый последний составной тип и пихает все под него. А Хотя есть и другие типы как строка и дата. А мене это нужно переносить. И как решить Х.З.
Добавлено: 18 Июл 2013, 18:03

Я часть плана раскусил! Просмотрев файл XML, я понял что у меня выгружается из ПВХ только Код и Наименование. Тип не передается.. т.к. он задается в окне свойства объекта. И соответственно не передается. Теперь другая мысль, как задать параметр, куда закинуть свои необходимые данные, а при загрузке или после загрузки эти данные считать!???
Добавлено: 19 Июл 2013, 01:25

Провожу дальнейшие исследование и читаю книгу Бояркина - конвертация данных. Там как раз мой пример на 155 странице. Но снова возникла проблема.

Начинаю внедрять.. вот мой код. Ниже код.. разве что только нет сопоставление с простыми типами...Строка, дата, булево.. Может вот на них и ругается.. Выгружается корректно и в XML файле все ок(есть типы). Но при загрузке ошибка.- http://hkar.ru/hEau

Код, что использую при загрузке.

УзелТиповXML = одПолучитьXMLПредставлениеОписанияТипов(Источник.ТипЗначения);

//для переноса одного типа в другой заменим наименование
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Валюты", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.ЗначенияСвойствОбъектов", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КлассификаторЕдиницИзмерения", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КлассификаторСтранМира", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КонтактныеЛица", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КонтактныеЛицаКонтрагентов", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Контрагенты", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.НоменклатурныеГруппы", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Номенклатура", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Организации", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Подразделения", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Пользователи", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Проекты", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Склады", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.ТипыЦенНоменклатуры", "СправочникСсылка.СвойстваТовара");
УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.ФизическиеЛица", "СправочникСсылка.СвойстваТовара");

ДобавитьПодчиненный(Приемник, УзелТиповXML);

Далее я лезу в саму обработку. И у меня происходит стопор на этой строке http://hkar.ru/hEaP(как бы я догадываюсь, как решить проблему,- править код обработки... но не охота править стандартный код ее)
что находится в этих переменных - http://hkar.ru/hEaZ, http://hkar.ru/hEb0. Поэкспериментировав с конфигурацией, понял чтобы система смогла заменить тип нужно указать такой код

КвЧисла = Новый КвалификаторыСтроки(10);
Пероб = Новый ОписаниеТипов("Строка",,,,КвЧисла);
Объект.ТипЗначения = Пероб;

Так вот, как это сделать, не правя обработку? что не так делается?
Возможно ли при загрузке из XML файла вытащить этот параметр, да я бы сам указал что и как? Боюсь только если я сам начну указывать на прямую параметр, то будет все равно ошибка.. т.к. сначала обрабатывается код обработки. А потом мой.


 

Последний раз редактировалось: boobzx; 19 Июл 2013, 01:25. Причина: Объединение сообщений

Оффлайн boobzx

  • ***
  • Сообщений: 124
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2013-03-07
  • Сайт: 
  • Профессия: Ученик 1С
ООООДА!!!!!!!!!!!!  РЕШИЛ ПРОБЛЕМУ!
ФУУХ ИИИХА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Правда немного туповато.... НОООО я ЕЕ РЕШИЛ!!! Надо выпить пойти!

В общем я решил так... если в карточке товара есть свойства.. а я как раз товары переношу и свойства... то я кидаю ПВХ, а с пвх и справочник СвойстваТовара(этот справочник как минимум есть во всех типовой "торговле"). Он делает движение в регистре сведение.- ЗначениеСвойствОбъектов. А там есть Объект, СвойстваТовара, и значение, а так как он выгружается по владельцу... я смотрю какой параметр передается в значение.. и смотрю его тип и далее нахожу владельца в пвх и задаю тип программно вот ниже код. Результат тот, который я хотел.

ООООДА!!!!!!!!!!!!  РЕШИЛ ПРОБЛЕМУ! 
ФУУХ ИИИХА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Правда немного туповато.... НОООО я ЕЕ РЕШИЛ!!! Надо выпить пойти!

В общем я решил так... если в карточке товара есть свойства.. а я как раз товары переношу и свойства... то я кидаю ПВХ, а с пвх и справочник СвойстваТовара(этот справочник как минимум есть во всех типовой "торговле"). Он делает движение в регистре сведение.- ЗначениеСвойствОбъектов. А там есть Объект, СвойстваТовара, и значение, а так как он выгружается по владельцу... я смотрю какой параметр передается в значение.. и смотрю его тип и далее нахожу владельца в пвх и задаю тип программно вот ниже код. Результат тот, который я хотел.

Если Строка(ТипЗНЧ(Объект.Значения)) = "Строка" Тогда
    //находим ПВХ по наименованию
 
    Об = Строка(Объект.СвойстваТовара);
    Ист = ПланыВидовХарактеристик.ПрочиеСвойстваТовара.НайтиПоНаименованию(Об);
    Обк = Ист.ПолучитьОбъект();
        //определим параметры строки
 
        КвЧисла = Новый КвалификаторыСтроки();
        Стр = Новый ОписаниеТипов("Строка",,,,КвЧисла);
    Обк.ТипЗначения = Стр;
    Обк.Записать();
КонецЕсли;

Если Строка(ТипЗНЧ(Объект.Значения)) = "Дата" Тогда
    //находим ПВХ по наименованию
 
    Об = Строка(Объект.СвойстваТовара);
    Ист = ПланыВидовХарактеристик.ПрочиеСвойстваТовара.НайтиПоНаименованию(Об);
    Обк = Ист.ПолучитьОбъект();
        //определим параметры строки
 
        КвДата = Новый КвалификаторыДаты(ЧастиДаты.Дата);
        Стр = Новый ОписаниеТипов("Дата",,,,,КвДата);
    Обк.ТипЗначения = Стр;
    Обк.Записать();
КонецЕсли;


Теги:
 

Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

Автор Владимир87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7459
Последний ответ 06 Дек 2014, 17:40
от дфтын
Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3892
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2132
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 7385
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Куда сохраняются данные в режиме работы клиент при выгрузке данных обработкой "Универсальный обмен данными в формате XML"

Автор xDDРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 6975
Последний ответ 13 Ноя 2014, 08:23
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
62 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 223
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal