8.х Остаток конкретного товара на данную секунду получить

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

  1. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Посмотрите методы табличной части "ВыгрузитьКолонку" и методы Списка значений (Загрузить)
  2. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Получилось с двумя разделенными запросами те что выше..

    Но вот попытался их объединить и не вышло.
    Код:
    Функция  МинЦенаТЗ(Дата,Номенклатура,СкладКомпании) Экспорт     
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ  
    |    ПартииТоваровКомпанииОстатки.СкладКомпании КАК СкладКомпании,
    |    ПартииТоваровКомпанииОстатки.Партия.Контрагент КАК Контрагент,
    |    ВЫБОР
    |      КОГДА Контрагент = Контрагент В (&Контрагент)
    |      ТОГДА Себестоимость + Себестоимость * 0.38
    |      ИНАЧЕ Себестоимость + Себестоимость * 0.2
    |      КОНЕЦ КАК МинЦенаПродажи
    |      ИЗ
    |     (ВЫБРАТЬ
    |    ПартииТоваровКомпанииОстатки.КоличествоОстатки КАК Количество,
    |    ПартииТоваровКомпанииОстатки.СуммаОстатки КАК Сумма,
    |    ВЫБОР
    |      КОГДА Количество = 0 
    |      ТОГДА  0
    |      ИНАЧЕ    Сумма /Количество
    |      КОНЕЦ КАК Себестоимость 
    |   ИЗ
    |    РегистрНакопления.ПартииТоваровКомпании.Остатки(&Дата, 
    |            Номенклатура В (&Номенклатура))  КАК ПартииТоваровКомпанииОстатки";
    
    СП = новый СписокЗначений();
    СП.Добавить(Справочники.Контрагенты.НайтиПоНаименованию("Корея"));
    Запрос.УстановитьПараметр("Контрагент",СП); 
    Запрос.УстановитьПараметр("Дата",Дата);
    Запрос.УстановитьПараметр("СкладКомпании",СкладКомпании);
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    ТЗ=Новый ТаблицаЗначений;
    ТЗ=Запрос.Выполнить().Выгрузить();
    ТЗ.Колонки.Добавить("Себестоимость");
    ТЗ.Колонки.Добавить("МинЦенаПродажи");
    Для каждого Стр Из ТЗ Цикл
    Сообщить(Стр.МинЦенаПродажи);
    КонецЦикла;
    Возврат ТЗ;
    КонецФункции 
    

    {ОбщийМодуль.дкДокументы(639)}: Ошибка при вызове метода контекста (Выполнить): {(11, 34)}: Поле не найдено "ПартииТоваровКомпанииОстатки.КоличествоОстатки"
    ПартииТоваровКомпанииОстатки.<<?>>КоличествоОстатки КАК Количество,
    ТЗ=Запрос.Выполнить().Выгрузить();
  3. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Еще раз рекомендую - пишите в КОНСТРУКТОРЕ ЗАПРОСОВ. Крайне удобная вещь, которая избавит вас от таких ошибок.

    КоличествоОстаток - поле есть, а КоличествоОстатки поля нет.

    Кроме того - для начала лучше пишите как проще, а не как эффективнее :)
  4. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Эмин , да я с удовольствием бы писал в конструкторе. но что бы на нем писать ,нужно знать что писать и как в нем писать :). Вот и пытаюсь освоить.
    Я открывая конструктор еще не до конца понимаю
    как им пользоваться.
    Оставил с двумя запросами, вроде работает. Правда перебирает в порядке как попало а не упорядоченно :)
    Попросили зделать им кнопку выбора Типов цен, что бы выводило в таблицу товаров цены на все выбранные товары по выбранному типу Цен
    Процедура ТипЦенПриИзменении(Элемент)
    Код:
            
    Запрос=Новый Запрос("
    |ВЫБРАТЬ
    |    ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    |    ЦеныСрезПоследних.Цена КАК Цена
    |ИЗ
    |    РегистрСведений.Цены.СрезПоследних(,ТипЦен=&ТипЦен 
    |                 И Номенклатура В (&Номенклатура) И Контрагент = &ПустойКонтрагент) КАК ЦеныСрезПоследних");
    Запрос.УстановитьПараметр("ТипЦен",ЭтаФорма.ЭлементыФормы.ТипЦен.Значение);
    Запрос.УстановитьПараметр("Номенклатура",Товары.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("ПустойКонтрагент",Справочники.Контрагенты.ПустаяСсылка());
    
    ТаблицаЦен=Запрос.Выполнить().Выгрузить();
    Для Каждого СтрокаТовар Из Товары Цикл
    НайденнаяСтрока=ТаблицаЦен.Найти(СтрокаТовар.Номенклатура,"Номенклатура");
    Если НайденнаяСтрока=Неопределено Тогда Продолжить; 
    КонецЕсли;
    СтрокаТовар.ЦенаРучная=НайденнаяСтрока.Цена;
    
    КонецЦикла;            
    КонецПроцедуры
    
    а это что бы видели только типы цен которые им можно выбирать :)
    
    Процедура ТипЦенНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ФормаТипЦен = Справочники.ТипыЦен.ПолучитьФормуВыбора(,Элемент);
    ФормаТипЦен.Отбор.Комментарий.Значение = "Категории";
    ФормаТипЦен.Отбор.Комментарий.Использование = Истина;
    ФормаТипЦен.ЭлементыФормы.Список.НастройкаОтбора.Комментарий.Доступность=Ложь;    
    ФормаТипЦен.ОткрытьМодально();
    
    КонецПроцедуры
    
    //Комментарии зделал недоступными для редактирования.
    
    Выводит все цены,но вот думаю как бы зделать, что бы и все данные пересчитывало в таблице,
    а то они остаются прежними тк программа не воспринимает, что произошло изменение цены "Цена ручной ввод"
    ( я зделал колонку, иначе с фиксированной розницей не удобно(она тоже осталась) в
    "Цена ручной ввод" и выгружаются Цены по выбранному типу цен. Но не пересчитывается Сумма , скидки, Всего и тд.
    Боюсь для этого мне опять придется "Сложнейший "запрос писать руками с элементами вычислений. ИБО ...
    Конструктору не доверяю.. :) шучу.
    Я страшно прогрессирую благодаря Вам и форуму :)
  5. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Я рад, что вы прогрессируете :))) Это и правда заметно.
    Чем лучше конструктор - он проще - нужную вам таблицу взяли и сформировали, а вручную удобно писать, если корректировки вносятся.

    Чтобы что-то пересчитывать, надо отработать нужное событие и кроме того написать обработку события. Если вам нужно запонить что-то, то передавайте табличную часть в процедуру, а внутри документа вы и так имеете доступ ко всему объекту.
  6. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Существует ли литература по обучении работы на конструкторе?
  7. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Боже .. у меня вышло , может и коряво, Но минЦену продажи выводит, осталось добавить вычисления, то
    Сущие пустяки :)
    Код:
    Процедура ТипЦенПриИзменении(Элемент)
    СтрокаТабличнойЧасти=ЭлементыФормы.Товары.ТекущиеДанные;    
    Запрос=Новый Запрос("
    |ВЫБРАТЬ
    |    ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    |    ЦеныСрезПоследних.Цена КАК Цена
    |ИЗ
    |    РегистрСведений.Цены.СрезПоследних(,ТипЦен=&ТипЦен И Номенклатура 
    |                                В (&Номенклатура) И Контрагент = &ПустойКонтрагент) КАК ЦеныСрезПоследних");
    Запрос.УстановитьПараметр("ТипЦен",ЭтаФорма.ЭлементыФормы.ТипЦен.Значение);
    Запрос.УстановитьПараметр("Номенклатура",Товары.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("ПустойКонтрагент",Справочники.Контрагенты.ПустаяСсылка());
    
    ТаблицаЦен=Запрос.Выполнить().Выгрузить();
    Для Каждого СтрокаТовар Из Товары Цикл
    НайденнаяСтрока=ТаблицаЦен.Найти(СтрокаТовар.Номенклатура,"Номенклатура");
    Если НайденнаяСтрока=Неопределено Тогда Продолжить; 
    КонецЕсли;
    СтрокаТовар.ЦенаРучная=НайденнаяСтрока.Цена;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ПартииТоваровКомпанииОстатки.КоличествоОстаток КАК Количество,
    |    ПартииТоваровКомпанииОстатки.СуммаОстаток КАК Сумма
    |ИЗ
    |    РегистрНакопления.ПартииТоваровКомпании.Остатки(&Дата,
    |                   Номенклатура=&Номенклатура) КАК ПартииТоваровКомпанииОстатки";
    Запрос.УстановитьПараметр("Дата",КонецДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("СкладКомпании",ЭтаФорма.ЭлементыФормы.СкладКомпании.Значение);
    Запрос.УстановитьПараметр("Номенклатура",НайденнаяСтрока.Номенклатура);
    ВыборкаСебестоимости = Запрос.Выполнить().Выбрать();
    Если ВыборкаСебестоимости.Следующий() Тогда
    Если ВыборкаСебестоимости.Количество=NULL ИЛИ ВыборкаСебестоимости.Количество=0 Тогда
    БазЦена=0;
    Иначе
    БазЦена=Окр(ВыборкаСебестоимости.Сумма/ВыборкаСебестоимости.Количество,1);
    КонецЕсли;
    СтрокаТовар.Себестоимость=БазЦена;
    КонецЕсли;
    Запрос=Новый Запрос; 
    Запрос.Текст="ВЫБРАТЬ
    |    ПартииТоваровКомпанииОстатки.Партия.Контрагент КАК Контрагент               
    |ИЗ
    |    РегистрНакопления.ПартииТоваровКомпании.Остатки(, 
    |                   Номенклатура = &Номенклатура) КАК ПартииТоваровКомпанииОстатки";
    Запрос.УстановитьПараметр("Номенклатура",НайденнаяСтрока.Номенклатура);
    Запрос.УстановитьПараметр("СкладКомпании",ЭтаФорма.ЭлементыФормы.СкладКомпании.Значение);
    ВыбКонтраг=Запрос.Выполнить().Выбрать();
    Если ВыбКонтраг.Следующий() Тогда
    Контр= ВыбКонтраг.Контрагент;
    Если  Контр = Справочники.Контрагенты.НайтиПоНаименованию("Корея") ИЛИ 
    Контр = Справочники.Контрагенты.НайтиПоНаименованию("Китай")  Тогда
    СтрокаТовар.МинЦенаПродажи=Окр(СтрокаТовар.Себестоимость*1.38,0,1);
    Иначе
    СтрокаТовар.МинЦенаПродажи=Окр(СтрокаТовар.Себестоимость*1.2,0,1);
    //Далее у меня тут пойдут вычисления сумм, процентов и тд.
    //Строка.Товар.СуммаВсего= .....
    // СтрокаТовар.Количество 
    //СтрокаТовар.ЦенаРозницы   Все есть :)
    КонецЕсли
    КонецЕсли;        
    
    
    КонецЦикла;            
    КонецПроцедуры
    
    Если есть какие замечания или ошибки ,которые в будущем могут вылезти. прошу укажите.
    Красоту моего кода можно не комментировать, я знаю что он красив :)
    Эмин, Вы видите , какой "монстр" растет. ха ха ... Спасибо.
    p.s Ручная работа.
  8. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Поздравляю!

    Из литературы просто почитайте книжку Радченко или если хочется всерьез, то "Профессиональную разработку в 1С предприятии" Габеца и других авторов.
  9. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    За запрос в цикле надо убивать на месте.
  10. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Я не просек из-за форматирования :)
  11. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Эмин,
    :unsure: Форматирование ужасное... Думаю сделать автоматическое для кода...
  12. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Вот и первые проблемы.. (
    Код:
    Процедура ТПЦеныПриИзменении(Элемент)    
    Имп = УстановкаНаценкиИмпорт();  
    Мест = УстановкаНаценкиМестный();     
    Ставк = УстановкаСтавка();
    Запрос=Новый Запрос("
    |ВЫБРАТЬ
    |    ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    |    ЦеныСрезПоследних.Цена КАК Цена
    |ИЗ
    |    РегистрСведений.Цены.СрезПоследних(,ТипЦен=&ТПЦены И Номенклатура В (&Номенклатура)) КАК ЦеныСрезПоследних");
    Запрос.УстановитьПараметр("ТПЦены",Справочники.ТипыЦен.НайтиПоНаименованию(ЭтаФорма.ЭлементыФормы.ТПЦены.Значение));
    Запрос.УстановитьПараметр("Номенклатура",Товары.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("ПустойКонтрагент",Справочники.Контрагенты.ПустаяСсылка());
    ТаблицаЦен=Запрос.Выполнить().Выгрузить();
    Для Каждого СтрокаТовар Из Товары Цикл
    НайденнаяСтрока=ТаблицаЦен.Найти(СтрокаТовар.Номенклатура,"Номенклатура");    
    Если 
    НайденнаяСтрока=Неопределено Тогда
    Продолжить;
    КонецЕсли;
    СтрокаТовар.ЦенаРучная=НайденнаяСтрока.Цена;//Здесь сообщает цены всех контр и ктрай /корея тоже
    Сообщить(СтрокаТовар.ЦенаРучная);
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ПартииТоваровКомпанииОстатки.КоличествоОстаток КАК Количество,
    |    ПартииТоваровКомпанииОстатки.СуммаОстаток КАК Сумма
    |ИЗ
    |    РегистрНакопления.ПартииТоваровКомпании.Остатки(&Дата,Номенклатура=&Номенклатура) КАК ПартииТоваровКомпанииОстатки";
    Запрос.УстановитьПараметр("Дата",КонецДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("СкладКомпании",ЭтаФорма.ЭлементыФормы.СкладКомпании.Значение);
    Запрос.УстановитьПараметр("Номенклатура",НайденнаяСтрока.Номенклатура);
    ВыборкаСебестоимости = Запрос.Выполнить().Выбрать();
    Если ВыборкаСебестоимости.Следующий() Тогда
    Если ВыборкаСебестоимости.Количество=NULL ИЛИ ВыборкаСебестоимости.Количество=0 Тогда
    БазЦена=0;
    Иначе
    БазЦена=Окр(ВыборкаСебестоимости.Сумма/ВыборкаСебестоимости.Количество,1);
    КонецЕсли;
    СтрокаТовар.Себестоимость=БазЦена;
    КонецЕсли;
    Запрос=Новый Запрос; 
    Запрос.Текст="ВЫБРАТЬ
    |    ПартииТоваровКомпанииОстатки.Партия.Контрагент КАК Контрагент               
    |ИЗ
    |    РегистрНакопления.ПартииТоваровКомпании.Остатки(, Номенклатура = &Номенклатура) КАК ПартииТоваровКомпанииОстатки";
    Запрос.УстановитьПараметр("Номенклатура",НайденнаяСтрока.Номенклатура);
    Запрос.УстановитьПараметр("СкладКомпании",ЭтаФорма.ЭлементыФормы.СкладКомпании.Значение);
    ВыбКонтраг=Запрос.Выполнить().Выбрать();
    Если ВыбКонтраг.Следующий() Тогда
    Контр= ВыбКонтраг.Контрагент;
    Если  Контр = Справочники.Контрагенты.НайтиПоНаименованию("Корея") ИЛИ 
    Контр = Справочники.Контрагенты.НайтиПоНаименованию("Китай")  Тогда
    СтрокаТовар.МинЦенаПродажи=Окр((СтрокаТовар.Себестоимость*Имп)*Ставк,0,1);
    Иначе
    СтрокаТовар.МинЦенаПродажи=Окр((СтрокаТовар.Себестоимость*Мест)*Ставк,0,1);
    Если СтрокаТовар.Цена =0  ИЛИ
    СтрокаТовар.Цена=неопределено Тогда            
    Сообщить("! Не назначена розничная цена");
    СтрокаТовар.ЦенаРучная= Неопределено;
    СтрокаТовар.СуммаВсего=Неопределено;
    СтрокаТовар.Сумма=Неопределено;
    СтрокаТовар.СуммаСкидки=Неопределено;
    Иначе
    Если  СтрокаТовар.ЦенаРучная>СтрокаТовар.Цена Тогда
    Сообщить("! Цена ручного ввода не может быть больше Цены розницы");
    СтрокаТовар.ЦенаРучная=неопределено;
    СтрокаТовар.Сумма=Неопределено;
    СтрокаТовар.СуммаСкидки=Неопределено;
    СтрокаТовар.СуммаВсего=Неопределено;
    иначе
    Если  СтрокаТовар.ЦенаРучная<СтрокаТовар.МинЦенаПродажи Тогда
    СтрокаТовар.СуммаВсего=Неопределено;        
    СтрокаТовар.ЦенаРучная=Неопределено;
    СтрокаТовар.Сумма=Неопределено;
    СтрокаТовар.СуммаСкидки=Неопределено;
    Сообщить("Нарушена минимальная цена продажи, введите другую цену")
    иначе
    СтрокаТовар.Сумма=СтрокаТовар.Количество*СтрокаТовар.Цена;
    [size=3]СтрокаТовар.СуммаВсего=СтрокаТовар.Количество*СтрокаТовар.ЦенаРучная;[/size]
    Сообщить(СтрокаТовар.ЦенаРучная);// = ничего не сообщает если контр (китай корея ) хотя выше эту строку определяет. 
    [size=3]СтрокаТовар.ПроцентСкидки=(СтрокаТовар.Цена-СтрокаТовар.ЦенаРучная)*100/СтрокаТовар.Цена;[/size]
    СтрокаТовар.СуммаСкидки=(СтрокаТовар.Цена-СтрокаТовар.ЦенаРучная)*СтрокаТовар.Количество;СуммаБезНДС=(100*СтрокаТовар.СуммаВсего)/(100+СтрокаТовар.СтавкаНДС.Ставка);
    СтрокаТовар.СуммаНДС=СтрокаТовар.СуммаВсего-СуммаБезНДС;
    КонецЕсли;    
    КонецЕсли
    КонецЕсли;        
    КонецЕсли;
    КонецЕсли;        
    КонецЦикла;            
    КонецПроцедуры
    
    
    
    
    По контрагентам не Китай/корея все нормально считает и сумма всего и ндс и процент скидки, а вот по Корея/Китай
    Все выводит но выделенное не считает,если это китай /корея
  13. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Вот скрин. Те товары что пересчитано все- когнтрагенты не китай/корея

    Вложения:

    • Чек.JPG
      Чек.JPG
      Размер файла:
      173,6 КБ
      Просмотров:
      46
  14. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Я чего-то не понял - когда они должны пересчитываться и при каком событии? Если у вас где-то не то число, то, пожалуйста. проверьте в отладчике. Просто пока не понял в чем проблема - и что не пересчиталось.
  15. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Нашел, так его. Вот ето Если иначе - не корректно расставлены и отсекали всех китайцев и корейцев
  16. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Поздравляю.
    Чтобы не было проблем с этими Если и Иначе - надо форматирование делать, чтобы код удобно читался!
  17. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Каким образом делать форматирование

    Как зделать ,что бы цена 5.1 округлялась до целого в большую сторону?
  18. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Форматирование - это отступы - чтобы код структуру имел корректную.

    А как цену округлять - это математика =)

    Вот один способ округления цены:
    Цена = ?(Цел(Цена) = Цена, Цена, Цел(Цена + 1));
  19. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Я все с тем запросом до ума довожу.Вот часть процедуры:
    Код:
    Запрос=Новый Запрос; 
    Запрос.Текст="ВЫБРАТЬ
    |     ПартииТоваровКомпанииОстатки.Партия.Контрагент КАК Контрагент
    |  ИЗ
    |     РегистрНакопления.ПартииТоваровКомпании.Остатки(,Номенклатура = &Номенклатура) КАК ПартииТоваровКомпанииОстатки";
    Запрос.УстановитьПараметр("Номенклатура",Стр.Номенклатура);
    //Запрос.УстановитьПараметр("СкладКомпании",СкладКомпании);
    Выб=Запрос.Выполнить().Выбрать();
    Если Выб.Следующий() Тогда
    Контр= Выб.Контрагент;
    КонецЕсли;
    Если Контр = Справочники.Контрагенты.НайтиПоНаименованию("Корея") ИЛИ
    Контр = Справочники.Контрагенты.НайтиПоНаименованию("Китай") Тогда
    Стр.МинЦенаПродажи=Окр((Стр.Себестоимость*Имп)*Ставк,0,1);
    Иначе
    Стр.МинЦенаПродажи= Окр((Стр.Себестоимость*Мест)*Ставк,0,1);
    КонецЕсли;
    
    
    
    
    Такой вопрос. А что делать если одна и та же номенклатура 1 партия пришла Китай а вторая с такой же номенклатурой пришла Местная поставка.Тоесть по запросу программа получит 2-х контрагентов или как? Как лучше дописать что если по данной номенклатуре 2 поставщика то выбрать процент по тако му то
    Или это не возможно.?
  20. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Ну вообще, если на то пошло, то при "Заполнить и провести" и ведется учет по сериям, то такие строчки в принципе разобьются на две (пришедший товар с разными сериями будет). И там уже анализировать.

    А как сделать - вы не нас должны спрашивать, вот сейчас вы задаете вопрос по ВЕДЕНИЮ УЧЕТА, а это только компетенция вашего руководства. Мы насоветовать можем, но не строить же ваши бизнес процессы.

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