|
Работа по по OLE 7.7->8.3 | ☑ | ||
---|---|---|---|---|
0
Aldnepr
24.10.16
✎
14:36
|
Необходимо синхронизировать некоторые данные из 7,7 в 8,3. (Подключаться именно в таком порядке, наоборот не подходит). К v8 я подключился, новый элемент тоже создал- разобрался. А вот как корректировать существующий??
Процедура Перенос() Контр7=СоздатьОбъект("Справочник.Контрагенты"); Контр8=БазаИсточник.Справочники.Контрагенты; Контр7.НайтиПоКоду("02608"); Кинц7=Контр7.ТекущийЭлемент(); Если Контр8.НайтиПоКоду(Кинц7.Код)=0 Тогда Кинц8=Контр8.СоздатьЭлемент(); Иначе Кинц8=Контр8.ТекущийЭлемент(); КонецЕсли; Кинц8.Код=Кинц7.Код; Кинц8.Наименование=Кинц7.Наименование; Кинц8.НаименованиеПолное=Кинц7.ПолнНаименование; Кинц8.Записать(); Сообщить("Записан"+" "+Кинц8.Код+" "+ Кинц8.Наименование); КонецПроцедуры |
|||
1
Господин ПЖ
24.10.16
✎
14:37
|
Если Контр8.НайтиПоКоду(Кинц7.Код)=0 Тогда
Кинц8=Контр8.СоздатьЭлемент(); Иначе Кинц8=Контр8.ТекущийЭлемент(); КонецЕсли; выкидывай. это вам не это |
|||
2
MrStomak
24.10.16
✎
14:37
|
ПолучитьОбъект()
|
|||
3
Aldnepr
24.10.16
✎
14:41
|
(2) Напиши пжлста в коде, я в 8 только разбираюсь
|
|||
4
MrStomak
24.10.16
✎
14:50
|
(3) Если в 8 разбираешься, то в чем проблема изменить 8шный справочник? То же самое всё. Как-то так должно быть:
Контр8 = Приемник.Справочники.контрагенты.НайтиПоКоду("блаблабла"); Если Контр8.Пустая()=1 Тогда Контр8Объект = Приемник.Справочники.Контрагенты.СоздатьЭлемент(); Иначе Контр8Объект = Контр8.ПолучитьОбъект(); КонецЕсли; Контр8Объект.Записать(); |
|||
5
Aldnepr
24.10.16
✎
14:56
|
(4) Спасибо, добрый Человек! Может подскажете мануал по языку 8, чтобы без лишней воды можно было быстрее разобраться?
|
|||
6
Aldnepr
24.10.16
✎
15:00
|
(4) я v8 только начал вникать, и все накопленное от 7,7 теперь будет страшно мешать восприятию новой конструкции ( это я как то сразу понял)
|
|||
7
mehfk
24.10.16
✎
15:04
|
||||
8
mehfk
24.10.16
✎
15:05
|
||||
9
Aldnepr
03.11.16
✎
12:10
|
Чего то завис с подчиненными справочниками. Необходимо заполнить спр. ЕдиницыИзмерения через ОЛЕ, а он как известно подчинен Номенклатуре. Вот что наваял, но выскакивает ошибка "выборка = ЕдИзм8.Выбрать(,Т8);
{D:\BASE2\8.3\1C8_ОБРАБОТКИ\ОЛЕ.ERT(242)}: 1C:Enterprise 8.3.9.1818: Несоответствие типов (параметр номер '2')" Тов7=СоздатьОбъект("Справочник.ТМЦ"); Тов8=БазаИсточник.Справочники.Номенклатура; ЕдИзм8= БазаИсточник.Справочники.ЕдиницыИзмерения; КласЕдИзм8=БазаИсточник.Справочники.КлассификаторЕдиницИзмерения; Тов7.ВыбратьЭлементы(); Пока Тов7.ПолучитьЭлемент()=1 Цикл Если Тов7.ЭтоГруппа()=1 Тогда Продолжить; Конецесли; Найден=Тов8.НайтиПоКоду("0000"+СокрЛП(Тов7.Код)); Если Найден.Пустая()= 0 Тогда Т8 = Найден.ПолучитьОбъект(); выборка = ЕдИзм8.Выбрать(,Т8); Ед=выборка.СоздатьЭлемент(); Ед.ЕдиницаПоКлассификатору=Т8.БазоваяЕдиницаИзмерения; Ед.Коэффициент=1; Если Т8.БазоваяЕдиницаИзмерения= "0301" Тогда Ед.Вес=1; КонецЕсли; Ед.Записать(); Т8.Записать(); |
|||
10
Ёпрст
03.11.16
✎
12:17
|
>>> выборка = ЕдИзм8.Выбрать(,Т8);
>>> Ед=выборка.СоздатьЭлемент(); вот это всё в топку |
|||
11
Serginio1
03.11.16
✎
12:35
|
Используй внешние отчеты.
Как через оле задать отбор? Жизнь сразу милее будет. Премущества сначала предварительная отладка, затем получение данных из неё по COM |
|||
12
Aldnepr
04.11.16
✎
10:50
|
(11)я внешними обработками все и оформил. Перекинул уже правда не по COM а по OLE. Уж не знаю сильно ли отличаются эти методы,возможно в скорости обработки, но т.к. у меня базы на одном диске, то ОЛЕ обрабатывает мгновенно как 7,7-->8.3, так и наоборот
|
|||
13
Serginio1
04.11.16
✎
12:05
|
(12) COM и OLE суть одна. Есть только внутренний сервер(dll) и внешний (exe)
Если весь код в обработке, то большой разницы нет, так как весь код выполняется на стороне сервера. |
|||
14
h-sp
04.11.16
✎
12:18
|
(12) 1. вот это бред
выборка = ЕдИзм8.Выбрать(,Т8); пиши выборка = ЕдИзм8.Выбрать(,Найден); 2. вместо этого Ед=выборка.СоздатьЭлемент(); пиши Ед=ЕдИзм8.СоздатьЭлемент(); 3. А эта строка Если Т8.БазоваяЕдиницаИзмерения= "0301" Тогда вообще на грани абсурда. Ты элемент справочника со строкой сравниваешь. |
|||
15
Aldnepr
04.11.16
✎
13:28
|
(14) Спасибо! Разобрался пункт 3. писал поздно вечером, то уже за гранью разума вышло)).
Могли бы помочь еще с закавыкой одной?- перенес с 7,7 контрагентов при помощи УниверсальнойОбработкиПереноса.epf и всё вроде ладно перенеслось, кроме одного- ЮрАдрес и телефон не прописался в "ВидКонтактнойИнформации" (см.рис. http://i013.radikal.ru/1611/94/a2413ac1f942.jpg ) . Эта информация выбирается из одноименного справочника, но в конфигураторе в форме Элемента спр.Контрагенты стоит "полеВвода" с типом строка. - http://s017.radikal.ru/i421/1611/c2/0dec89a2e36d.jpg Как добраться туда, чтобы обработкой заполнить эти недостающие данные? |
|||
16
mehfk
05.11.16
✎
06:16
|
Курни регистр сведений "КонтактнаяИнформация".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |