|
Конвертация данных Как правильно указать параметр? | ☑ | ||
---|---|---|---|---|
0
Босечка
03.05.17
✎
11:07
|
В полях поиска прописываю свой алгоритм по поиску номенклатуры
Если НомерВариантаПоиска = 1 тогда Если СвойстваПоиска["АлкогольнаяПродукция"] тогда Запрос = Запросы.НайтиНоменклатуруАлкПоПолямПоиска; Запрос.УстановитьПараметр("СсылкаАлк",СсылкаНаОбъект); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ССылкаНаОбъект = Выборка.Номенклатура; ПрекратитьПоиск = Истина; УстанавливатьУОбъектаВсеСвойстваПоиска =Ложь; КонецЕсли; Иначе и т.д. вот запрос ВЫБРАТЬ СоответствиеНоменклатурыЕГАИС.Номенклатура ИЗ РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеНоменклатурыЕГАИС ГДЕ СоответствиеНоменклатурыЕГАИС.Номенклатура = &СсылкаАлк СсылкаНаОбъект в полях поиска это правильно? |
|||
1
бомболюк
03.05.17
✎
11:19
|
а я вот что то думал всегда что в результате работы этого события (Поиск) и надо присвоить значение переменной СсылкаНаОбъект, а значит использовать его значение в качестве параметра запроса как то неправильно, мне так кажется.
|
|||
2
azt-yur
03.05.17
✎
11:20
|
(0) Запрос.УстановитьПараметр("СсылкаАлк",СсылкаНаОбъект); - здесь не правильно, у вас еще нет ссылки. Искать надо по полям поиска.
А вообще что пытаетесь найти? Передаете в запрос ссылку, которую и пытаетесь вернуть. |
|||
3
Босечка
03.05.17
✎
11:28
|
а как правильно надо написать? Пытаюсь найти ссылку на объект в источнике Как к ней обратиться. Я знаю что непроавильно, поэтому и спрашиваю
|
|||
4
Aleksey
03.05.17
✎
11:30
|
(3) На данном этапе источник недоступен.
И повторяю в 21 раз. На данном этапе доступны те поля источника у которых стоит галка поиск |
|||
5
azt-yur
03.05.17
✎
11:32
|
(3) по каким условиям хотите ее найти? Причем здесь регистр СоответствиеНоменклатурыЕГАИС? Почему нельзя ограничиться настройкой полей поиска, зачем писать код?
|
|||
6
Босечка
03.05.17
✎
11:32
|
А как же мне найти ссылку на эту номенклатуру?
|
|||
7
Aleksey
03.05.17
✎
11:33
|
(6) Запросом, перебором, как вы считаете нужным так и ищите
|
|||
8
PiotrLoginov
03.05.17
✎
11:34
|
(6) см. (5)
|
|||
9
Aleksey
03.05.17
✎
11:35
|
Вопрос изначально в чем был? Как мне самостоятельно найти нужную номенклатуру и подсунуть найденную номенклатуру в КД
Вы же как то планировали её искать, ккакие то критерии у вас поиска были. Вот по ним и ищите |
|||
10
Aleksey
03.05.17
✎
11:35
|
||||
11
Босечка
03.05.17
✎
11:39
|
Вся эта ерунда я согласна идет из-за того что надо перенести остатки из разных баз с возможно разной номенклатурой.
|
|||
12
Aleksey
03.05.17
✎
11:40
|
(6) забудьте о КД
Вот у вас номенклатура в одной базе. Как вы ищите соответсвие в другой? Без привязки к КД, как вы определяете что вот эта номенклатура из одной базе соответствует именно вот этой номенклатуре в другой. Т.е. у них коды совпадают, или в дополнительных реквизитах код другой базы прописан, или у вас регистр сведений - соответствие объекта заполнен и вы по нем ищите соответствие Для начало ответьте на вопрос как вы планируете сопоставлять. А потом уже будете обучать КД искать соответствие автоматом |
|||
13
Босечка
03.05.17
✎
11:49
|
Мне надо сопоставить по наличию номенклатуры в Регистре сведений СоответствиеНоменклатурыЕГАИС
|
|||
14
Aleksey
03.05.17
✎
11:55
|
(13) Ок вот открыли вы этот регистр. и как вы будете сопоставлять? Как вы определите кто есть ху?
P.S. А вы точно правильно поняли задачу? Этот регистр никакого отношения не имеет к поставленной задачи. Конечно есть вариант двойной конвертации. Сначала ищем соответствие в источники и меняем номенклатуру на эталоную. Затем уже в приемнике по эталонной номенклатуре ищем номенклатуру в приемнике, но мне отсюда не видно что за бардак у вас там в базах |
|||
15
Босечка
03.05.17
✎
11:58
|
ТОчно правильно поняла. Именно в этом регистре мне надо искать.
|
|||
16
Босечка
03.05.17
✎
11:59
|
Если номенклатура есть в этом регистре, то она найдена, в противном случае - создается новая.
|
|||
17
Босечка
03.05.17
✎
12:00
|
Из разных баз надо слить информацию в одну, чтобы потом сделать РИБ.
|
|||
18
Aleksey
03.05.17
✎
12:00
|
(16) Ок. у вас в одной базе "Вино 0,5 игристое." В другой базе
"Вино игр. 0,5л бут." По какому критерию вы определите что это одна и таже позиция? |
|||
19
Босечка
03.05.17
✎
12:00
|
Чтобы номенклатура не задвоилась надо сделать этой поиск.
|
|||
20
Aleksey
03.05.17
✎
12:01
|
(16) вы путаете мягкое с тёплым. Хотя бы посмотрите для чего нужен этот рееистр
|
|||
21
Aleksey
03.05.17
✎
12:02
|
(19) У вас в источнике этот регистр хоть заполнен?
|
|||
22
Босечка
03.05.17
✎
12:02
|
для сопоставления номенклатуре кодам алкогольной продукции
|
|||
23
Босечка
03.05.17
✎
12:02
|
Заполнен
|
|||
24
Aleksey
03.05.17
✎
12:04
|
(22) Только есть нюанс. Он привязан к импортерам. Т.е. он та может быть заполнен но у другого поставщика, что делать?
|
|||
25
Босечка
03.05.17
✎
12:09
|
(18) Буду искать "Вино 0,5 игристое" в Регистре
СоответствиеНоменклатурыЕГАИС там есть кодалкогольной продукцииЕГАИС. Далее "Вино игр. 0,5л бут. тоже надо искать в этом регистре, если кодалкогольной продукцииЕГАИС совпадает, то это одна и таже позиция. Только как это в конвертации написать не знаю...... |
|||
26
Aleksey
03.05.17
✎
12:11
|
(25) там нет кода, по крайне мере в бП
Измерения АлкогольнаяПродукция - СправочникСсылка.КлассификаторАлкогольнойПродукцииЕГАИС ИдентификаторУпаковки - Строка Ресурсы Номенклатура - СправочникСсылка.Номенклатура КоэффициентПересчетаУпаковки - Число И где здесь код? |
|||
27
Aleksey
03.05.17
✎
12:15
|
Но если у в самописке есть этот код, тогда проще
Добавляем новый реквизит Источник - получить из входящих данных + галка поиск и заполняем его кодалкогольнойпродукцииЕГАИС. Далее в поиске прописываем если это поле заполнено, то ищем в регистре. Нашли - заполняем переменную СсылкаНаОбъект Не нашли, или поле не заполнено - тогда обычный поиск |
|||
28
Босечка
03.05.17
✎
12:15
|
конфа Розница 2.2 базовая никаких самописок нет переносится в проф розница 2.2
|
|||
29
Босечка
03.05.17
✎
12:17
|
Вы хотите сказать в приемнике можно добавить код? И перенести из базовой?
|
|||
30
azt-yur
03.05.17
✎
12:17
|
(25) "кодалкогольной продукцииЕГАИС" - это реквизит номенклатуры?
|
|||
31
Босечка
03.05.17
✎
12:19
|
нет Это реквизит справочника КлассификаторАлкогольнойПродукцииЕГАИС
|
|||
32
Aleksey
03.05.17
✎
12:23
|
(31) это не так. У этого справочника нет такого кода.
Код - это типовой код который 1С присваивает автоматом. И он не обязан совпадать в разных базах |
|||
33
Aleksey
03.05.17
✎
12:23
|
Реквизиты
Объем Крепость ВидПродукции Производитель Импортер НаименованиеПолное ТипПродукции |
|||
34
Босечка
03.05.17
✎
12:28
|
Именно так во всех базах одинаковый вот так.
|
|||
35
Йохохо
03.05.17
✎
12:37
|
понял) надо сделать поиск не по полям номенклатуры, а полям КлассификаторАлкогольнойПродукцииЕГАИС, которой соответствует эта номенклатура в РС СоответствиеНоменклатурыЕГАИС
|
|||
36
Aleksey
03.05.17
✎
12:40
|
(34) ну тогда (27) всё еще в силе
|
|||
37
Босечка
03.05.17
✎
12:44
|
понятно. А где прописывать получение этого кода?
|
|||
38
Aleksey
03.05.17
✎
12:47
|
все там же
Если ЗначениеЗаполнено(СвойстваПоиска["АлкогольнаяПродукция"]) тогда Запрос = Запросы.НайтиНоменклатуруАлкПоПолямПоиска; Запрос.УстановитьПараметр("Код",СвойстваПоиска["АлкогольнаяПродукция"]); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ССылкаНаОбъект = Выборка.Номенклатура; ПрекратитьПоиск = Истина; УстанавливатьУОбъектаВсеСвойстваПоиска =Ложь; КонецЕсли; Иначе |
|||
39
Босечка
03.05.17
✎
13:04
|
понятно
только Запрос.УстановитьПараметр("Код",СвойстваПоиска["КодЕГАИС"]); КодЕГАИС - реквизит который я создам в приемнике и на нем надо галочку поставить. АлкогольнаяПродукция - булево. Правильно я поняла? |
|||
40
Aleksey
03.05.17
✎
13:13
|
почти
|
|||
41
Aleksey
03.05.17
✎
13:13
|
и заполняем его кодалкогольнойпродукцииЕГАИС.
|
|||
42
Босечка
03.05.17
✎
13:16
|
(41) Из входящих данных. А где это заполнение прописать?
|
|||
43
Йохохо
03.05.17
✎
22:14
|
Вам как бы намёк, что всё плохо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |