Имя: Пароль:
1C
1С v8
Правила переноса, задать наименование склада
,
0 krasa_polina
 
11.06.13
12:41
Всем здравствуйте!
У меня есть нормально работающие правила переноса, где на Наименовании склада ПередВыгрузкой на склад прописан код:

Значение = "Основной склад";

Но, нужно, чтобы был не просто "ОС", а ПрефиксОрганизации + "ОС",
дабы было видно, чей товар на данном складе. Впервые вижу конвертацию, направьте, пожалуйста, в нужном направлении.
1 Beduin
 
11.06.13
12:42
2 Wobland
 
11.06.13
12:42
(0) боишься префикс организации со строкой сконкатерировать?
3 krasa_polina
 
11.06.13
12:45
не боюсь! я храбрая! вот только не знаю как. к нему же надо обратиться, тем более (как я понимаю, могу ошибаться) это не на справочник надо, а на документ, ведь у справочника нет организации. Или я ошибаюсь?
4 Wobland
 
11.06.13
12:46
(3) а ты закрой глаза и представ, что КД нет. потом открой и присвой Значение так же
5 krasa_polina
 
11.06.13
14:05
Ну, на документ это дело не работает, ругается на недоступность поля (ишь ты, скромняга недоступная). А склад не знает, какой организации он принадлежит... или знает, но молчит. Заколдованный круг получился, ибо все, что скрыто во тьме, есть колдовство.
6 D_E_S_131
 
11.06.13
14:19
(5) Красиво пишете. А как по Вашему можно определить принадлежность склада к организации в момент выгрузки?
7 hhhh
 
11.06.13
15:07
(6) ну как нас учит великий спец8

В документе

ИсходящиеДанные.ВСтавить("Префикс", Источник.Организация.Префикс);

в складе

Значение = ВходящиеДанные.Префикс + Значение;
8 krasa_polina
 
18.06.13
09:23
Прописала примерно такой код на после выгрузки документов:


Если СокрЛП(Объект.Организация.Наименование) = "01 ТПК" Тогда
   ИмяСклада = "ТПК Основной склад";
ИначеЕсли СокрЛП(Объект.Организация.Наименование) = "06 ОКБ" Тогда
   ИмяСклада = "ОКБ Основной склад";
ИначеЕсли СокрЛП(Объект.Организация.Наименование) = "07 ТД" Тогда
   ИмяСклада = "ТД Основной склад";
Иначе
   ИмяСклада = "Основной склад";
КонецЕсли;

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

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

Для Каждого ТекТов Из Объект.Товары Цикл
   ТекТов.Склад = Склад;
КонецЦикла;


Работает как надо, только на прошлые периоды косячит, некоторые склады подменяет, а некоторые оставляет просто "Основной склад", хотя организация относится к одной из списка вышеперечисленных.
9 krasa_polina
 
18.06.13
11:25
код не косячит, если выгружать только реализации, то все норм, так что ошибка в другом.