Имя: Пароль:
1C
1С v8
В зависимость от Источника КД
,
0 zippygrill
 
08.02.12
16:13
Уверен вопрос мой не новый, так что простите. Но что-то я уже не соображаю и наверное задача проще простого.
В источнике ести 4 склада(Склад 1 опт; Склад 1; Склад 2 опт; Склад 2). В приемнике 2(Склад 1; Склад 2)
Выгружаю документы через произвольный алгоритм; Как мне подставить в приемнике Склад 1 вне зависимость какой склад в источнике(или Склад 1 опт или Склад 1). Тоже самое по второму складу.
1 zippygrill
 
08.02.12
16:18
апну
2 zippygrill
 
08.02.12
16:25
еще
3 zippygrill
 
08.02.12
16:30
ну?
4 zippygrill
 
08.02.12
16:37
?
5 zippygrill
 
08.02.12
16:44
??
6 ДенисЧ
 
08.02.12
16:52
В ПВД Склад 1
Если (Источник.Склад1 = Склад1) или (Источник.Склад1 = Склад1Опт) ТОгда
 Значение = Склад1;
КонецЕсли;

Аналогично по второму складу
7 zippygrill
 
08.02.12
17:06
(6)а еще варианты? может что-то при/после загрузки?
8 ДенисЧ
 
08.02.12
17:10
(7) А чем этот плох?
9 Aleksey
 
08.02.12
17:14
(7) можно

Если СокрЛП(Объект.Комментарий = "Склад1") или СокрЛП(Объект.Комментарий = "Склад1Опт") ТОгда
 Объект.Склад = Склад1;
КонецЕсли;

Предварительно в комментарий нужно занести инфу что за склад
10 Aleksey
 
08.02.12
17:15
либо выгружать склад как есть, а после загрузки менять его

Если Объект.Склад=Склад1Опт тогда
 Объект.Склад=Склад1;
КонецЕсли;
11 zippygrill
 
08.02.12
17:24
(8) он не плох. нужно будет как его прокрутить.
(9) в комментарий не пойдет.
(10) как вариант.
12 Aleksey
 
08.02.12
17:28
(11) почему

При выгрузки пишешь
значение= сокрЛП(источник.склад)+"$"+источник.комментарий;

после загрузки

ищешь символ $ и
Объект.Комментарий = Сред(Объект.Комментарий,ПозицияСимвола$);
13 zippygrill
 
08.02.12
17:33
принципиально не хочу использовать этот реквизит. в нем своя информация.
14 PVV65
 
08.02.12
17:38
(0) Надо написать правила для справочника Склады. В ПКО в обработчике "ПередВыгрузкой" пишешь

Если Источник.Наименование = "Склад 1 опт" Тогда
Источник = Справочники.Склады.НайтиПоНаименованию("Склад 1");
ИначеЕсли Источник.Наименование = "Склад 2 опт" Тогда
Источник = Справочники.Склады.НайтиПоНаименованию("Склад 2");
КонецЕсли;

В документах склады конвертнутся сами.
Но это если в приемнике складов нет.
15 zippygrill
 
09.02.12
08:56
(14) "Но это если в приемнике складов нет." - так если ищем по наименование как их может не быть в приемнике?))
16 zippygrill
 
09.02.12
09:19
кстать а можно в событий ПослеЗагрузки обращатся к реквизиту через Ссылку? ну типо Объект.Ссылка.КакойтоРеквизит?
17 zippygrill
 
09.02.12
10:20
(14) сделал как ты написал. смотрю в файл выгрузки а там вместо Склад1 стойт Склад 1 опт. не сработало.
18 zippygrill
 
09.02.12
10:39
вверх
19 zippygrill
 
09.02.12
14:13
еще
20 mvgfirst
 
09.02.12
14:25
(17) Не мучай себе "вторые 90"...
Создаешь ПКО "Справочник.Склады" для переноса складов
У этого ПКО создаешь ПКС "Наименование". Для переноса наименования.
Ставишь отметку "Поиск объекта при загрузке по свойству"
В обработчике "ПередВыгрузкой" у этого ПКС пишешь что то похожее на


Если Источник.Наименование = "Склад 1 Опт" Тогда
Значение = "Склад 1";
КонецЕсли;

Собственно все. Выгружаться будут оба склада, но для двух разных складов он поставит одно и то же наименование. Что приведет в процессе загрузки к использованию одного и того же элемента.

P.S. Алгоритм определения дублирующих складов можно усложнять до безобразия (и после)

P.P.S. Так же можно увеличивать количество полей по которым производится поиск. Например еще добавить поля поиска: ЭтоГруппа и Родитель.
21 zippygrill
 
09.02.12
14:46
(20) мне важно чтобы они(склады из источника) и не создавались в приемнике.
22 zippygrill
 
09.02.12
14:47
*еще
23 mvgfirst
 
09.02.12
15:19
(21) На лице плохое понимание идеологии КД. Нужно читать, думать и пробовать... меньше будет вопросов.

Но что бы не быть ханжой - скажу: Если при загрузке поле поиска одно и то же... то будет найден и использован во всех документах один и тот же элемент.
Для чего собственно и делается подмена значения поиска при выгрузке.
24 zippygrill
 
09.02.12
16:30
(23) уже понял. спс.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн