Имя: Пароль:
1C
1С v8
КД. как создать правило выгрузить справочник ОС + инвентарный номер из регистра
0 Ivan_495
 
02.03.16
14:26
Знатоки прекрасного инструмента конвертации данных подскажите , как создать правило выгрузить справочник ОС + инвентарный номер из регистра первоначальные сведения в справочник ОС
1 Ivan_495
 
02.03.16
14:28
справочник ОС нормально выгружается не могу вытащить и загрузить инвентарный
2 Naumov
 
02.03.16
14:28
Слишком дофига информации, чтобы однозначно ответить на этот вопрос.
3 Ivan_495
 
02.03.16
14:28
руками это можно сделать за 2 часа
4 Ivan_495
 
02.03.16
14:29
в ПКС инвномер передвыгрузкой создал правило
Если Источник.ЭтоГруппа тогда
Отказ = Истина;
иначе    
Попытка
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("дт",ТекущаяДата());
Запрос.УстановитьПараметр("ОС",Источник);

Запрос.Текст=
"ВЫБРАТЬ
|    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер
|ИЗ
|    РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&дт,ОС=&ОС) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних";

Выборка=Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Значение = Выборка.ИнвентарныйНомер;
Иначе
Отказ = Истина;
КонецЕсли;
исключение
Отказ = Истина;
КонецПопытки;        
КонецЕсли;
5 АнжелаДэвис
 
02.03.16
14:31
(3) тогда не лохмать бабушку
6 Alex S D
 
02.03.16
14:32
(4) И ?
7 Ivan_495
 
02.03.16
14:36
инвентарный выгружается, но не загружается

если пишу Значение="11111" то инвентарный загружается
8 MaxS
 
02.03.16
14:38
Источник это случайно не Объект?
9 Ivan_495
 
02.03.16
14:40
(8) в справке написано , что Источник это ссылка на объект
10 Ivan_495
 
02.03.16
14:59
(5) заказчик хочет обмен по правилам
11 Ivan_495
 
02.03.16
14:59
подскажите правильно делаю или нет?
12 Ivan_495
 
02.03.16
15:07
почему-то в файле выгрузки "Код" вместо "инвномер"
</Свойство>
- <Свойство Имя="Код">
  <Значение>000002775</Значение
13 Naumov
 
02.03.16
15:10
Куда написал, туда и ставит.
14 Ivan_495
 
02.03.16
15:10
хотя правильно код там тоже должен быть, но поля "инвномер" нет
15 Naumov
 
02.03.16
15:11
(14) И куда оно впихнет ?
16 Карупян
 
02.03.16
15:13
инвентарный номер устанавливается ДОКУМЕНТОМ
17 Карупян
 
02.03.16
15:14
например Ввод остатков.
Самому тут велосипед лучше не изобретать, а взять типовые правила за основу
18 Ivan_495
 
02.03.16
15:17
(16) в курсе
(17) не типовая конфа

выгружаю спр ОС + инв из РС --------в---> спр ОС ( инв в реквизит инвномер)
19 Naumov
 
02.03.16
15:18
(18) Сделай ПКС с пустым источником и приемником Инв, который у тебя реквизит.
В обработчик ПередВыгрузкой впихни код, что ты написал.
20 Ivan_495
 
02.03.16
15:20
(19) именно так все уже сделано
21 Naumov
 
02.03.16
15:21
12 говорит, что не так
22 Ivan_495
 
02.03.16
15:27
когда вместо кода (4) пишу
Значение="55555" все нормально попадает (использую поле заводской номер)

<Свойство Имя="ЗаводскойНомер">
  <Значение>55555</Значение>
  </Свойство>
23 Ivan_495
 
02.03.16
15:30
в коде городил обход групп

Если Источник.ЭтоГруппа тогда
Отказ = Истина;
иначе

может неправильно?
на ПКС ЭтоГруппа стоит галочка
24 Ivan_495
 
02.03.16
15:43
исправил код ПКС инвномер передвыгрузкой

Запрос=Новый Запрос;
Запрос.УстановитьПараметр("дт",ТекущаяДата());
Запрос.УстановитьПараметр("ОС",Источник);

Запрос.Текст=
"ВЫБРАТЬ

|    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер

|ИЗ
|    РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&дт,ОС=&ОС) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних";

Выборка=Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Значение = Выборка.ИнвентарныйНомер;
Иначе
Отказ = Истина;
КонецЕсли;


ругается

Ошибка при выгрузке данных для узла плана обмена
    ТипОбъекта             =  Справочник объект: Основные средства
    Объект                 =  Оборудование РП 6/0.4 кВ № 1
    ОписаниеОшибки         =  Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  ОсновныеСредства  (Справочник: Основные средства)
    ПКС                    =  6  (--> ЗаводскойНомер)
    Объект                 =  Оборудование РП 6/0.4 кВ № 1  (Справочник объект: Основные средства)
    СвойствоПриемника      =  ЗаводскойНомер  (Строка)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Выполнить):  Поле не найдено "ОС"
РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&дт,<<?>>ОС=&ОС) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
    ПозицияМодуля          =  (13)
    КодСообщения           =  55
    ПозицияМодуля          =  Обработка.ОбменДаннымиXML.МодульОбъекта(1648)
    КодСообщения           =  72
    УзелПланаОбмена        =  УПП
Произошла ошибка при выгрузке объектов. Было выгружено: 0

Техническая информация:
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Выполнить): {(4, 81)}: Поле не найдено "ОС"
25 Ivan_495
 
02.03.16
15:45
похоже у групп не находит реквизит заводской номер
как правильно обойти группы ,чтобы не обрабатывались
26 Naumov
 
02.03.16
15:46
(25) Ты же сам писал в (4)
Если Источник.ЭтоГруппа тогда
Отказ = Истина;
иначе
27 Ivan_495
 
02.03.16
15:48
(26) с такой конструкцией  ЗаводскойНомер (инвентарный) не попадает в выгрузку
28 Ivan_495
 
02.03.16
15:50
а "Попытка исключение" КД вообще понимает?
29 Naumov
 
02.03.16
15:52
(28) Дело не в попытке.
У тебя запрос тупо не работает, т.к. нет поля
ОС

Что за конфигурация источник? Если что-то от типовой, то там измерение ОсновноеСредство зовется.
30 Ivan_495
 
02.03.16
15:59
написал с обходом групп
Если Источник.ЭтоГруппа тогда
Отказ = Истина;
Иначе
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("дт",ТекущаяДата());
Запрос.УстановитьПараметр("ОС",Источник);

Запрос.Текст=
"ВЫБРАТЬ

|    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер

|ИЗ
|    РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&дт,ОС=&ОС) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних";

Выборка=Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Значение = Выборка.ИнвентарныйНомер;
Иначе
Отказ = Истина;
КонецЕсли;
КонецЕсли;
31 Ivan_495
 
02.03.16
16:00
(29) т.е. вместо
Запрос.УстановитьПараметр("ОС",Источник);
д.б.
Запрос.УстановитьПараметр("ОС",Источник.ОсновноеСредство);
32 Ivan_495
 
02.03.16
16:01
выгружаю из бухгалтерии в упп
33 Карупян
 
02.03.16
16:11
Источник.Ссылка
34 Ivan_495
 
02.03.16
16:12
(29) исправил измерение спасибо
Если Источник.ЭтоГруппа тогда
Отказ = Истина;
Иначе
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("дт",ТекущаяДата());
Запрос.УстановитьПараметр("ОС",Источник);

Запрос.Текст=
"ВЫБРАТЬ
|    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер
|ИЗ
|    РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&дт, ОсновноеСредство = &ОС) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних";

Выборка=Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Значение = Выборка.ИнвентарныйНомер;
Иначе
Отказ = Истина;
КонецЕсли;
КонецЕсли;

но выдает ошибку
Ошибка при выгрузке данных для узла плана обмена
    ТипОбъекта             =  Справочник объект: Основные средства
    Объект                 =  Цифровой регистратор диспетчерских переговоров
    ОписаниеОшибки         =  Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  ОсновныеСредства  (Справочник: Основные средства)
    ПКС                    =  6  (--> ЗаводскойНомер)
    Объект                 =  Цифровой регистратор диспетчерских переговоров  (Справочник объект: Основные средства)
    СвойствоПриемника      =  ЗаводскойНомер  (Строка)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Выполнить):  Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&дт, ОсновноеСредство <<?>>= &ОС) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
    ПозицияМодуля          =  (14)
    КодСообщения           =  55
    ПозицияМодуля          =  Обработка.ОбменДаннымиXML.МодульОбъекта(1648)
    КодСообщения           =  72
    УзелПланаОбмена        =  УПП
Произошла ошибка при выгрузке объектов. Было выгружено: 10

Техническая информация:
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Выполнить): {(4, 99)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
35 Ivan_495
 
02.03.16
16:15
(33) спасибо заработало
36 Ivan_495
 
02.03.16
16:29
подскажите а что сделать , чтобы при изменении инвентарного номера он всегда выгружался
37 Ivan_495
 
02.03.16
16:30
?
38 Naumov
 
02.03.16
16:36
(36) если у тебя объект замещается при выгрузке, то он будет всегда ставиться.
39 Ivan_495
 
02.03.16
16:39
(38) а чтобы он замещался каждый раз при выгрузке , какая галка должна стоять?
40 Ivan_495
 
02.03.16
16:40
"не запоминать выгруженные объекты"?
41 Ivan_495
 
02.03.16
16:45
а по реквизиту объекта нельзя настроить ?
42 Ivan_495
 
02.03.16
16:48
(40) галка "не запоминать выгруженные объекты" не помогла
43 Ivan_495
 
02.03.16
17:07
up
44 Naumov
 
02.03.16
17:16
Есть галка "не замещать". если установлена, то найденный объект не будет замещаться.
45 Ivan_495
 
02.03.16
17:24
(44) галка "не замещать" не установлена
на закладке настройки для ПКО спр-ка основные средства
46 Ivan_495
 
02.03.16
17:27
объект то может и замещается, но нужно чтобы замещался реквизит

было ОС="Здание" инв="1111"
стало ОС="Здание" инв="2222"
47 Naumov
 
02.03.16
17:28
объект перезаписывается полностью. Изменится реквизит в источнике, значит изменится и в приемнике.
48 Ivan_495
 
02.03.16
17:43
что-то я сомневаюсь
http://forum.infostart.ru/forum85/topic129686/
49 Ivan_495
 
02.03.16
17:46
у меня сейчас при первой загрузке инвентарный меняется, а если после этого еще раз его меняешь, то объект с изменным инвентарным даже не выгружается
50 Ivan_495
 
02.03.16
17:51
хотя все логично "инвентарный" не является реквизитом спр-ка, а выбирается из регистра сведений, значит наверно нужно отдельное ПКО , что анализировать замещать его или нет