Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Перенос 7.7.-8.2.УПП через Свойства          
Evgeniy762004 Подменю пользователя
сообщение 19.01.16, 11:29
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день.

В 1С8 УПП в справочнике номенклатура есть свойство "Код 1С 7" созданное с типом план видов характеристик, тоесть такое виртуальное, значения сами хранятся в регистре сведений ЗначенияСвойствОбъектов. Мне нужно из 1С 7.7. переносить документы и номенклатуру искать по этому свойству "Код 1С 7". Помогите пожалуйста с правилами

sava1 Подменю пользователя
сообщение 19.01.16, 12:59
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Через КД и свойство - геморно. Проще добавить реквизит в справочник и прописать из свойства.
При прямой загрузке (через олю) типа так:
Ф
ункция ПолучитьКод1с(Элемент,СвПВХ)
    
    Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
                  |    ЗначенияСвойствОбъектов.Значение Как Значение
                  |ИЗ
                  |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                  |ГДЕ
                  |    ЗначенияСвойствОбъектов.Объект = &Объект
                  |    И ЗначенияСвойствОбъектов.Свойство = &Свойство";
                  
    Запрос.УстановитьПараметр("Объект",Элемент);
    Запрос.УстановитьПараметр("Свойство",СвПВХ);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Количество() > 0 Тогда
        Выборка.Следующий();
        Возврат Выборка.Значение;
    Иначе
        Возврат "";
    КонецЕсли;
        
КонецФункции



А так ищем само свойство
Функция  ПолучитьСвойствоПВХ(Перекл,НаименованиеСвойства = "Код1С7")

    Если Перекл = 1 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты;
    ИначеЕсли Перекл = 2 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
    ИначеЕсли Перекл = 3 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_НоменклатурныеГруппы;    
    ИначеЕсли Перекл = 7 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Склады;        
    ИначеЕсли Перекл = 8 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ФизическиеЛица;            
    ИначеЕсли Перекл = 10 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ДоговорыКонтрагентов;                
    ИначеЕсли Перекл = 12 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ОсновныеСредства;                    
    ИначеЕсли Перекл = 13 Тогда
        Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Подразделения;                        
    иначе
        Возврат Ложь;
    КонецЕсли;
    
    Отбор = Новый Структура();
    Отбор.Вставить("Наименование",НаименованиеСвойства);
    ВыборкаПВХ = ПланыВидовХарактеристик.СвойстваОбъектов.Выбрать(,Отбор);
    флНайдено = Ложь;
    Пока ВыборкаПВХ.Следующий() Цикл
        
        
        Если ВыборкаПВХ.НазначениеСвойства = Назначение Тогда
            флНайдено = Истина;
            Возврат ВыборкаПВХ.Ссылка;
        КонецЕсли;
        
    КонецЦикла;
    
    Возврат Ложь;


КонецФункции


Acid Подменю пользователя
сообщение 19.01.16, 14:38
Сообщение #3

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 377 раз
Рейтинг: 260.7

план видов характеристик для поиска по Коду в КД совершенно ни при чем. Поиск номенклатуры в КД по-умолчанию устанавливается по Коду. Для более точного поиска установите поиск по нескольким полям: Код, Наименование, ПолноеНаименование, Родитель, Артикул... ну и другие идентификаторы, которые у вас присутствуют в базе.


Signature

Документируйте Код! мать вашу...


Evgeniy762004 Подменю пользователя
сообщение 20.01.16, 9:55
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0

У меня выхода другого нет. Внедренцы запихнули код 1С 7 в свойство номенклатуры 1С8 УПП. По другим параметрам искать не получится так как и артикул и наименование могут не совпадать. И вот как теперь мне искать по этому свойству?

Из 1С 7.7. в ПКС Источник реквизит Код1С8 - Приемник Свойство номенклатуры Код 1С 7. Вот как-то так нужно. Обратно передавать проще, а вот в свойство и еще и искать по свойству как

sava1 Подменю пользователя
сообщение 20.01.16, 9:59
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Я бы сделал в НОменклатуре реквизит Код77, перенес коды из Свойств и искал по нему.
А Через свойства надо ПередЗагрузкой искать свойство, определять объект -короче гемор.

Acid Подменю пользователя
сообщение 20.01.16, 10:17
Сообщение #6

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 377 раз
Рейтинг: 260.7

Цитата(Evgeniy762004 @ 20.01.16, 9:55) *
У меня выхода другого нет. Внедренцы запихнули код 1С 7 в свойство номенклатуры 1С8 УПП. По другим параметрам искать не получится так как и артикул и наименование могут не совпадать. И вот как теперь мне искать по этому свойству?

Из 1С 7.7. в ПКС Источник реквизит Код1С8 - Приемник Свойство номенклатуры Код 1С 7. Вот как-то так нужно. Обратно передавать проще, а вот в свойство и еще и искать по свойству как

В сложившейся ситуации для ПКС "Код1С77" пишите в правилах так:
"ПередВыгрузкой": источник - пустое поле. Приемник - ваш реквизит в 8-ке "Код1С77"
Значение = СокрЛП(Источник.ПолныйКод());
Или Код, если он уникален.

Сообщение отредактировал Acid - 20.01.16, 10:17


Signature

Документируйте Код! мать вашу...


Evgeniy762004 Подменю пользователя
сообщение 20.01.16, 11:45
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0

Подсказали мне часть вот такой штуки. Передавать произвольный параметр - в нашем случае код 1С 7.7., а обрабатывать в обработчике Поля поиска и вот там искать. Не могу только понять как мне в обработчике Поля поиска получить выгружаемый объект

Вот например я передаю так:

При выгрузке

ВремПриемник = Приемник; 
ВремИД77 = Источник.Код;

Если ЗначениеЗаполнено(ВремИД77) Тогда

СтандартнаяОбработка = Ложь;
УзелСсылки = СоздатьУзел("Ссылка");
УстановитьАтрибут(УзелСсылки, "НеСоздаватьЕслиНеНайден", Истина);

ВремУзелИД = СоздатьУзел("id77");
УстановитьАтрибут(ВремУзелИД, "id", ВремИД77);
ДобавитьПодчиненный(УзелСсылки, ВремУзелИД);

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

КонецЕсли;

Обработчик Поля Поиска:

СвойствоКод = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000002"); 
НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
НаборЗаписейЗначенияСвойств.Отбор.Свойство.Установить(СвойствоКод);
НаборЗаписейЗначенияСвойств.Прочитать();


// Вот здесь мне нужно получить значение id, которое я передал. Как?

jackill88 Подменю пользователя
сообщение 02.02.16, 16:26
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 27
Из: Полтава
Спасибо сказали: 9 раз
Рейтинг: 0

Ну через ПоляПоиска[НазваниеПоля] должно искать
Я всегда юзаю при загрузке "Попытка-Исключение" в таких ситуациях, чтобы выловить что и куда подставлять

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 14:51
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!