8.х Цикл

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Geek, 5 май 2008.

  1. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Кто то подсажет мне почему у меня два раза выводится сообщение из цикла по одному и тому же товару?
    Код:
    Функция МинЦенаТЗ(Номенклатура,СкладКомпании,АктуальнаяДата)Экспорт
    Имп = УстановкаНаценкиИмпорт();  
    Мест = УстановкаНаценкиМестный(); 	
    Ставк = УстановкаСтавка(); 
    Запрос=Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	ПартииТоваровКомпанииОстатки.Номенклатура,
    |	ПартииТоваровКомпанииОстатки.КоличествоОстаток КАК Количество,
    |	ПартииТоваровКомпанииОстатки.СуммаОстаток КАК Сумма,
    |	ПартииТоваровКомпанииОстатки.Партия.Дата КАК ПартияДата,
    |	ПартииТоваровКомпанииОстатки.Партия.Контрагент КАК Контрагент,
    |	ПартииТоваровКомпанииОстатки.СкладКомпании
    |ИЗ
    |	РегистрНакопления.ПартииТоваровКомпании.Остатки(
    |		&Дата,
    |		Номенклатура В (&Номенклатура)
    |			И Партия.Дата <= &Дата
    |			И СкладКомпании = &СкладКомпании) КАК ПартииТоваровКомпанииОстатки
    |ГДЕ
    |	ПартииТоваровКомпанииОстатки.КоличествоОстаток > 0
    |
    |УПОРЯДОЧИТЬ ПО
    |	ПартияДата";
    Запрос.УстановитьПараметр("СкладКомпании",СкладКомпании);
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    Запрос.УстановитьПараметр("Дата",АктуальнаяДата);
    ТЗ=Новый ТаблицаЗначений;
    ТЗ=Запрос.Выполнить().Выгрузить();
    ТЗ.Колонки.Добавить("МинЦенаПродажи");
    ТВ=Новый ТаблицаЗначений;
    ТВ=Товары.Выгрузить();
    Для каждого Стр Из ТЗ Цикл
    НайденнаяСтрока=ТВ.Найти(Стр.Номенклатура,"Номенклатура");	
    Если 
    НайденнаяСтрока=Неопределено Тогда
    Продолжить;
    КонецЕсли;
    Нераспределено=НайденнаяСтрока.Количество;
    Сообщить(Нераспределено);
    Сообщить(НайденнаяСтрока.Номенклатура);
    Сумма=0;
    Количество=0;
    Для Каждого Партия Из ТЗ Цикл
    Если НайденнаяСтрока.Номенклатура=Партия.Номенклатура Тогда
    Если Партия.Количество>0 Тогда
    ЦенаР=Партия.Сумма/Партия.Количество Иначе
    Нераспределено=0;
    КонецЕсли;
    КонецЕсли;
    Если Нераспределено=0 тогда
    Партия.Количество=0;
    Продолжить;
    КонецЕсли;
    Если Партия.Количество>=Нераспределено Тогда
    Если Партия.Контрагент=Справочники.Контрагенты.НайтиПоНаименованию("Корея") ИЛИ
    Партия.Контрагент=Справочники.Контрагенты.НайтиПоНаименованию("Китай") Тогда
    Сумма1=Окр((ЦенаР*Нераспределено+Сумма)*Имп*Ставк,2);
    Количество1= Нераспределено+Количество;
    Себестоимость=Окр(Сумма1/Количество1,2);
    Нераспределено=0;
    Стр.МинЦенаПродажи=Себестоимость;
    Иначе
    Сумма1=Окр((ЦенаР*Нераспределено+Сумма)*Мест*Ставк,2);
    Количество1= Нераспределено+Количество;
    Нераспределено=0;
    Себестоимость=Окр(Сумма1/Количество1,2);
    Стр.МинЦенаПродажи=Себестоимость;
    Сообщить(Стр.МинЦенаПродажи);
    КонецЕсли;
    Продолжить;
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/иначе')">Иначе	</span>
    Нераспределено=Нераспределено-Партия.Количество;
    Сумма=Партия.Сумма+Сумма;
    Количество=Количество+Партия.Количество;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    Возврат ТЗ;
    
    
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Для затравки, это вообще зачем тут:
    "И Партия.Дата <= &Дата" ?!

Поделиться этой страницей