Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 08:12

Замена склада по определенному счету

Автор KoD, 29 авг 2010, 00:20

0 Пользователей и 1 гость просматривают эту тему.

KoD

Здравствуйте товарищи. Столкнулся я вот с чем. В документе по счету 10,02 надо заменить один склад на другой, но почему то заменяет и на других счетах. Подскажите где ошибка в коде программы.....
           СтарыйСклад1 =  Справочники.Склады.НайтиПоКоду("000000026");
   СтарыйСклад2 =  Справочники.Склады.НайтиПоКоду("000000030");
   СтарыйСклад3 =  Справочники.Склады.НайтиПоКоду("000000027");
           НовыйСклад1 = Справочники.Склады.НайтиПоКоду("000000011");   
   НовыйСклад2 = Справочники.Склады.НайтиПоКоду("000000013");   
   НовыйСклад3 = Справочники.Склады.НайтиПоКоду("000000012");
ДокСсылка = Документы.ВводНачальныхОстатков.НайтиПоНомеру("00000000003",дата('20100101000000'));
   ДокОбъект = ДокСсылка.ПолучитьОбъект();
   
   СчетаМатериалов = Новый Массив;
   СчетаМатериалов.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.02"));
   ПервоеЗначение = СчетаМатериалов[0];   
           ПервоеЗначение = СчетаМатериалов.Получить(0); 
Для Каждого СтрокаМПЗПриобретенные Из ДокОбъект.МПЗПриобретенные Цикл     
      Если СтрокаМПЗПриобретенные.Склад = СтарыйСклад1 И СтрокаМПЗПриобретенные.СчетУчета = ПервоеЗначение Тогда
         СтрокаМПЗПриобретенные.Склад = НовыйСклад1
      КонецЕсли;
      Если СтрокаМПЗПриобретенные.Склад = СтарыйСклад2 И СтрокаМПЗПриобретенные.СчетУчета = ПервоеЗначение  Тогда
         СтрокаМПЗПриобретенные.Склад = НовыйСклад4
      КонецЕсли;
      Если СтрокаМПЗПриобретенные.Склад = СтарыйСклад3 И СтрокаМПЗПриобретенные.СчетУчета = ПервоеЗначение  Тогда
         СтрокаМПЗПриобретенные.Склад = НовыйСклад5
      КонецЕсли;
   КонецЦикла;
   СчетаМатериалов.Очистить();
ДокОбъект.Записать();

KoD

Прошу прощения за номерацию складов в середине кода......

mohock

Твой код противоречит принципам программирования в 1С. (Хотя я эти принципы тоже не всегда поддерживаю, по незнанию  :D)
Ты не учитываешь работу с регистром сведений - Счета учета номенклатуры.
Есть под него стандартные процедуры/функции возвращающие структуру, для выбранной номенклатуры.
Т.е. по номенклатуре можно определить и ее счет и склад.
Поэтому нет смысла копаться в твоем коде.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск