Имя: Пароль:
1C
1С v8
Вопрос по КД
,
0 espanol
 
14.02.12
12:40
Если выгружаем данные из конфигурации №1, есть справочник пусть Номенклатура, есть справочник НДС (псевдоподчиненные Номенклатуре, т.е. у него есть реквизит Номенклатура, а у Номенклатуры нету реквизита НДС).
Загружаем в конфигурацию №2, есть справочник Номенклатура и НДС (подчиненный справочнику номенклатура, реквизит владелец - Номнеклатура, а у номенклатуры есть реквизит - НДС).

Как в данном случае лучше перегружать, сперва грузи отдельно оба справочника, а потом проставляем уже в Номенклатуре НДС? Если да, то как это лучше реализовать? опишите пожалуйста понятно....
1 Naumov
 
14.02.12
12:42
вот нифига не понял
2 ДенисЧ
 
14.02.12
12:42
Два ПКО и всё выгрузится за один проход.
3 espanol
 
14.02.12
12:43
(2) выгрузиться та выгрузится, смысл в другом же, как у номенклатуры проставить ндс?
4 espanol
 
14.02.12
12:46
ясно, никто на форму не умеет такого, буду сам разбираться )
5 Абыр
 
14.02.12
12:46
(3) 2 ПКО, для номенклатуры и для НДС. У номенклатуры в ПКС для НДС при выгрузке программно в справочнике НДС ищем соответствующее значение.
6 fisher
 
14.02.12
12:59
(0) В КД это легко делается.
Просто ПКО "НДС" через входящие данные будет принимать еще и ссылку на номенклатуру.
В ПКО "Номенклатура" в ПКС "НДС" в "Перед выгрузкой" в исходящие данные добавляешь "Источник". А в ПКО "НДС" в ПКС "Владелец" ставишь галку брать из входящих данных. И все. При выгрузке/загрузке номенклатуры все будет автоматом по ссылкам разруливаться.
7 dk
 
14.02.12
13:02
посмотри в типовых правилах как договора или основной контрагент переносятся
8 espanol
 
14.02.12
13:04
(7) где взять их?
9 espanol
 
14.02.12
13:04
в демке нету такого
10 fisher
 
14.02.12
13:09
(6) + Если из 8-ки в 8-ку тогда пишешь

ИсходящиеДанные = Новый Структура("Владелец", Источник);
11 espanol
 
14.02.12
13:12
(10) пробую, для 7.7 -> 8.2 тоже такой код написано...
12 espanol
 
14.02.12
13:12
чета ошибки...
13 fisher
 
14.02.12
13:13
(11) В 7.7 нет структуры. В 7.7 все тоже самое, только вместо структуры список значений использовать надо.
14 espanol
 
14.02.12
13:14
(13) а ну да, его использую... все равно ошибки.... при выгрузке


Начало выгрузки:   14.02.12 13:13:01
Ошибка получения значения свойства объекта
   Объект: Spare Parts HONDA (only), свойство: ОсновнаяЕдиницаИзмерения.
Ошибка получения значения свойства объекта
   Объект: Уцененные запчасти, свойство: ОсновнаяЕдиницаИзмерения.
Ошибка получения значения свойства объекта
   Объект: Блок управления коррекции фар, свойство: ОсновнаяЕдиницаИзмерения.
Выгружено объектов:   10
Окончание выгрузки:   14.02.12 13:13:10
15 espanol
 
14.02.12
13:15
я вместо НДС основуню единицу использую пока что
16 espanol
 
14.02.12
13:15
ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.ДобавитьЗначение(Источник, "Объект");
17 fisher
 
14.02.12
13:16
(14) Можно подумать, если ты отключишь конвертацию НДС, то ругаться перестанет. Разберись сначала с остальными проблемами.
18 fisher
 
14.02.12
13:17
(16) Какой нафиг "Объект"? Черным по белому - "Владелец".
19 espanol
 
14.02.12
13:21
(18)

ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.ДобавитьЗначение(Источник, "Владелец");



ошибка не исчезла....


ща еще покапаюсь
20 fisher
 
14.02.12
13:24
(19) Я ж не ясновидящий. Где-то криво настроил. Прием стандартный и миллион раз проверенный. Эта фигня должна быть написана в "Перед выгрузкой" ПКС единицы изменения ПКО "Номенклатура". А в ПКО единиц измерения стоять галка "получать из входящих данных" для ПКС "Владелец". Источником ессно семерочные единицы измерения быть должны.
21 fisher
 
14.02.12
13:27
Если упрешься - кинь два скриншота. Для списков ПКС номенклатуры и единиц измерения.
22 espanol
 
14.02.12
13:30
(21) ок, сейчас
23 fisher
 
14.02.12
13:36
(22) Ты ж источник для ПКС "ОсновнаяЕдиницаИзмерения" не выбрал.
24 fisher
 
14.02.12
13:38
И поиск единиц измерения явно не по коду должен быть. Я бы по владельцу и базовой единице поставил.
25 espanol
 
14.02.12
13:39
(23) все верно, потомучто его и нету!
26 espanol
 
14.02.12
13:40
у 7.7. спр.Номенклатура нету реквизита ЕдиницаИзмерения! Есть отдельный справочник ЕдиницыИзмерения с реквизитом "Номенклатура".
27 fisher
 
14.02.12
13:42
(26) А, блин. Извини. А какую ты тогда основную загружать планируешь?
28 espanol
 
14.02.12
13:44
ну вот это и надо в 8.2 грузануть!
в 8.2 Номенклатура имеет реквизит основнаяЕдиницаИзмерения
29 espanol
 
14.02.12
13:45
могу схему нарисовать и кинуть на мыло, вдруг знаешь как это делается
30 fisher
 
14.02.12
13:47
(29) Да знаю я все. На КД я собаку съел. Я задачу пытаюсь прояснить. Как у тебя в 7.7 определялась основная единица для номенклатуры, если их несколько было?
31 fisher
 
14.02.12
13:47
Тупо первая попавшаяся?
32 espanol
 
14.02.12
13:51
7.7 на сколько я знаю, у них была максимум 1 единица измерения, и видимо да, первая попавшаяся
33 fisher
 
14.02.12
13:53
(32) Но в справочнике единиц 7.7 есть еще и ссылка на классификатор (или перечисление) единиц, правильно?
34 espanol
 
14.02.12
13:54
(33) Да!
35 fisher
 
14.02.12
13:59
Ну, раз точно одна у каждого тогда проще. Можно обойтись без отдельного ПВД для единиц.
Тогда так. ПКО для единиц будет простое. Там вроде все очевидно. Реквизит "Номенклатура" пойдет во владельца, единица в единицу.
А в ПКС "ОсновнаяЕдиницаИзмерения" ПКО номенклатуры вместо той фигни с исходящими данными тупо пишешь семерочный код, который найдет первую единицу изменения текущей номенклатуры (это "Источник"). И ссылку на нее присваиваешь свойству "Значение".
Значение = СсылкаНаНайденнуюСемерочнуюЕдиницу;
36 fisher
 
14.02.12
14:02
Короче, в (5) был правильный ответ.
37 espanol
 
14.02.12
14:03
(35) хм.... я так и делал изначально.... там бред какойто получался.... блин, в чем проблема то ((

Спр = СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Спр.ИспользоватьВладельца(Источник);
Спр.ВыбратьЭлементы();
Если Спр.ПолучитьЭлемент()=1 Тогда
   Значение = Спр.ТекущийЭлемент();
Иначе    
   Отказ=1;
КонецЕсли;
38 fisher
 
14.02.12
14:05
Код в порядке.
Рассказывай про бред.
39 espanol
 
14.02.12
14:08
выгружаю, ставклю галочки в обработке на номенклатуре и единице измерения, номенклатура и ед.изм. спокойно переносятся, но когда открываеш номенклатуру там в реквизите ОснавнаяЕдиницпИзмерения стоит <>, без владельца, без наименования, без КлассификатораЕдиницыИзмерения, делаешь выбор Основной и там в выборе есть нужная единица измерения которая перенеслать...
40 espanol
 
14.02.12
14:09
почему она не ставится сразу и почему вместо нее <> я не понимаю....
41 fisher
 
14.02.12
14:32
(39) Ага. Значит ПКО единиц у тебя правильное. Проблемы в ПКО "Номенклатура".
(Кстати, единицы можно будет отдельно не выгружать. Они с номенклатурой выгрузятся автоматом, когда нормально заработает).
Уверен, что правильный справочник в (37) перебираешь? Воткни Сообщить() после присвоения значения. Оно туда вообще заходит? Нужную хрень втыкает?
42 espanol
 
14.02.12
14:49
(41) поставил сообщение, он выгружает какуюто хню )

Начало выгрузки:   14.02.12 14:47:27
<>
<>
<>
<>
Выгружено объектов:   11
Окончание выгрузки:   14.02.12 14:47:32
43 espanol
 
14.02.12
14:50
я так полагаю надо делать не Спр.ИспользоватьВладельца(Источник);
А отбор по номенклатуре
44 fisher
 
14.02.12
14:52
(43) Тю блин. Ясное дело
45 fisher
 
14.02.12
14:55
Это ж ты все для базы источника пишешь. А там у тебя справочник не подчиненный.
46 espanol
 
14.02.12
14:58
(45) Да, это ясно... я в 7.7. никогда не программил, и от семерошного кода в голово уже бардак....
47 espanol
 
14.02.12
15:00
(45) а не подскажешь ссылку или код как в 7.7 сделать отбор по реквизиту лучше?
48 fisher
 
14.02.12
15:03
Если для реквизита в конфигураторе стоит галка сортировки, то проще всего методом НайтиПоРеквизиту()
СП семерочный открой.
49 fisher
 
14.02.12
15:09
Если нету галки, тогда помогу с семерочным запросом.
50 espanol
 
14.02.12
15:14
(49) Какой галки именно?
51 zladenuw
 
14.02.12
15:28
сортировки
52 fisher
 
14.02.12
15:30
(50) В свойствах реквизита в семерочном конфигураторе на закладке "Дополнительно" галка "Сортировка". Тогда индекс по этому реквизиту создается и можно искать по индексу.
53 espanol
 
14.02.12
15:39
(52) Да, галка "Сортировка" стоит.

Спр = СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Если Спр.НайтиПоРеквизиту("Номенклатура", Источник) = 1 Тогда
   Значение = Спр.ТекущийЭлемент();
Иначе    
   Отказ=1;
КонецЕсли;


не подскажешь что в этом коде не верно?
54 fisher
 
14.02.12
15:42
Да вроде все верно. Это точно неподчиненный справочник?
А теперь что сообщает?
55 espanol
 
14.02.12
15:42
Начало выгрузки:   14.02.12 15:30:13
Ошибка исполнения обработчика:  ПКС_ПередВыгрузкой_Номенклатура_ОсновнаяЕдиницаИзмерения_Реквизит24
 - Недостаточное число параметров передано при вызове функции/процедуры объекта
Ошибка получения значения свойства объекта
   Объект: Spare Parts HONDA (only), свойство: ОсновнаяЕдиницаИзмерения.
Ошибка исполнения обработчика:  ПКС_ПередВыгрузкой_Номенклатура_ОсновнаяЕдиницаИзмерения_Реквизит24
 - Недостаточное число параметров передано при вызове функции/процедуры объекта
Ошибка получения значения свойства объекта
   Объект: Уцененные запчасти, свойство: ОсновнаяЕдиницаИзмерения.
Ошибка исполнения обработчика:  ПКС_ПередВыгрузкой_Номенклатура_ОсновнаяЕдиницаИзмерения_Реквизит24
 - Недостаточное число параметров передано при вызове функции/процедуры объекта
Ошибка получения значения свойства объекта
   Объект: Блок управления коррекции фар, свойство: ОсновнаяЕдиницаИзмерения.
Выгружено объектов:   9
Окончание выгрузки:   14.02.12 15:30:17
56 fisher
 
14.02.12
15:45
Ну, так попробуй
Спр.НайтиПоРеквизиту("Номенклатура", Источник, 1)
57 espanol
 
14.02.12
15:47
(56) сработало! спасибо большое что вытерпел меня и помог в этом тяжелом деле!

(буду углублятся в изучение 7-ки)
58 fisher
 
14.02.12
15:50
(57) Не за что. Сегодня я на карму работал :)
Углубляться в изучение 7.7 - врагу не пожелаю.
Лучше не углубляйся :)
Для изучения с нуля она, как не парадоксально, сложнее 8-ки.
Ибо менее систематизирована, имеет гораздо больше неочевидностей и гораздо хуже документирована.
59 espanol
 
14.02.12
15:52
(58) ясно, ясно, еще раз спасибо!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn