Вход | Регистрация
 

УТ 11.4.7.150 выбор дополнительного вида цен

УТ 11.4.7.150 выбор дополнительного вида цен
Я
   LivingStar
 
06.06.19 - 07:20
Конфигурация УТ 11.4.7.150. На форме разместил реквизит дополнительная цена. Тип справочник ВидыЦен.
В табличной части поле ЦенаСравнения. Как сейчас при выборе дополнительной цены, проставить в колонке эту цену?
В справочнике не нашел самого числа цены.
 
 
   Dmitrith
 
1 - 06.06.19 - 08:47
Открой для себя регистр сведений ЦеныНоменклатуры
   Maniac
 
2 - 06.06.19 - 08:49
)))) Реквизиты научился делать... а про код забыл))
   Maniac
 
3 - 06.06.19 - 08:51
Прямо классика жанра, когда пользователи думают что в 1С простым волшебных добавлением колонок и кнопок думают что у программиста это работы на пару минут) И все сразу заработает как им нужно)))
   LivingStar
 
4 - 06.06.19 - 10:31
Если я при перевыборе дополнительного вида цен, хочу сделать запрос по регистру сведений
и заполнить столбец с ценами. Как правильно это будет сделать?
В запрос нужно передать список цен с табличной части документа?


ВЫБРАТЬ
    ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК Цена,
    ЦеныНоменклатурыПоставщиковСрезПоследних.ВидЦеныПоставщика КАК ВидЦеныПоставщика
ИЗ
    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(&Период, ВидЦеныПоставщика = &ДополнительнаяЦена) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
   LivingStar
 
5 - 06.06.19 - 11:51
Как правильно выбрать? Что бы отбор был только в ценами?

ВЫБРАТЬ
    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК Цена
ИЗ
    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(&Период, ВидЦеныПоставщика = &ВидЦены) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
        ПО ЗаказПоставщикуТовары.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
ГДЕ
    ЗаказПоставщикуТовары.Ссылка = &Ссылка
   LivingStar
 
6 - 06.06.19 - 12:00
Так верно будет?

ВЫБРАТЬ
    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Цена, 0) КАК Цена
ПОМЕСТИТЬ ВТ_ДополнительныеЦены
ИЗ
    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(
                &Период,
                ВидЦеныПоставщика = &ВидЦены
                    И Цена <> NULL) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
        ПО ЗаказПоставщикуТовары.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
ГДЕ
    ЗаказПоставщикуТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТ_ДополнительныеЦены.Номенклатура КАК Номенклатура,
    ВТ_ДополнительныеЦены.Цена КАК Цена
ИЗ
    ВТ_ДополнительныеЦены КАК ВТ_ДополнительныеЦены
ГДЕ
    ВТ_ДополнительныеЦены.Цена <> 0
   sqr4
 
7 - 06.06.19 - 12:03
Цена <> NULL
даже NULL <> NULL ахахахах
   LivingStar
 
8 - 06.06.19 - 13:37
При изменении види цен, делаю запрос.

Как сейчас правильно занести выбранные цены в строки табличной части?
Подскажите пожалуйста. Очень благодарен!!!

//

&НаСервере
Процедура УстановитьЦенуСравненияНаСервере()
    Для каждого СтрТовары Из Элементы.Товары Цикл
        Сообщить(СтрТовары.Товар);
    КонецЦикла;
    
    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ
        |    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура
        |ПОМЕСТИТЬ ВТ_ЗаказПоставщику
        |ИЗ
        |    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
        |ГДЕ
        |    ЗаказПоставщикуТовары.Ссылка = &Ссылка
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ВТ_ЗаказПоставщику.Номенклатура                 КАК Номенклатура,
        |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
        |    ЦеныНоменклатурыСрезПоследних.ВидЦены           КАК ВидЦены
        |ИЗ
        |    ВТ_ЗаказПоставщику КАК ВТ_ЗаказПоставщику
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |                &Период,
        |                ВидЦены = &ВидЦены
        |                    И Номенклатура В
        |                        (ВЫБРАТЬ
        |                            ЗаказПоставщику.Номенклатура
        |                        ИЗ
        |                            ВТ_ЗаказПоставщику КАК ЗаказПоставщику)) КАК ЦеныНоменклатурыСрезПоследних
        |        ПО ВТ_ЗаказПоставщику.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("2018 ТЕСТ", 1));
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        Пока Выборка.Следующий() Цикл
            
        КонецЦикла;
    КонецЕсли;
    
КонецПроцедуры
   sqr4
 
9 - 06.06.19 - 14:02
Передавай в запрос еще идентификатор строки, а затем ищи ее через НайтиСтроки. Быстрее будет, взять все реквизиты тч, а затем из запроса все загрузить в тч, наверное.
   LivingStar
 
10 - 06.06.19 - 14:10
(9) Не совсем понимаю, извините (((( Можно пример кода?
   LivingStar
 
11 - 06.06.19 - 14:33
Подскажите как записать значения в табличную часть?

    Если Не Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        Пока Выборка.Следующий() Цикл
             Отбор = Новый Структура();
             Отбор.Вставить("Номенклатура", Выборка.Номенклатура);
             НайденноеЗначение = Объект["Товары"].НайтиСтроки(Отбор);
             Если НайденноеЗначение.Количество() > 0 Тогда
                 Сч = 0;
                 Пока НайденноеЗначение.Количество() >= Сч Цикл 
                     Сообщить(НайденноеЗначение[Сч].Наименование);
                     НайденноеЗначение[Сч].СуммаСравнения = Выборка.Цена;
                     Сч = Сч + 1;
                 КонецЦикла;
             КонецЕсли;             
        КонецЦикла;
    КонецЕсли;
    
КонецПроцедуры
// <-
   LivingStar
 
12 - 06.06.19 - 14:49
почему не появляются значения в табличной части которые я заполняю?

        Пока Выборка.Следующий() Цикл
             Отбор = Новый Структура();
             Отбор.Вставить("Номенклатура", Выборка.Номенклатура);
            //

             ОбъектЗаказПоставщику = Объект.Ссылка.ПолучитьОбъект();
            //

             НайденноеЗначение = ОбъектЗаказПоставщику["Товары"].НайтиСтроки(Отбор);
             Если НайденноеЗначение.Количество() > 0 Тогда
                 Сч = 0;
                 Пока НайденноеЗначение.Количество() > Сч Цикл 
                    //Сообщить(НайденноеЗначение[Сч].Номенклатура);

                     НайденноеЗначение[Сч].СуммаСравнения = Выборка.Цена;
                     Сч = Сч + 1;
                 КонецЦикла;
             КонецЕсли;             
            //ОбъектЗаказПоставщику.Записать(РежимЗаписиДокумента.Запись);

        КонецЦикла;
   LivingStar
 
13 - 06.06.19 - 14:56
(12) Почему данные не появляются в табличной части? В отладчике она проставляются, что я не так делаю?
   LivingStar
 
14 - 06.06.19 - 15:06
UP!

Список тем форума
Рекламное место пустует  Рекламное место пустует
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.