8.х УТ Установка цен на основании перемещения

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем Артемka, 7 янв 2015.

  1. roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29
    20-25% кода переписано под свои нужды.
    называю эту базу "яркий пример как нельзя"

    просто до этого были задачи ввода на основании, которые решались просто:
    открыть документы, расставить галочки и написать кусок кода, который 1с в принципе могёт формировать автоматом.

    а тут проблема в том, что "как раньше" не получается.

    а через внешнюю обработку не получилось, тк нужно получить форму документа установки цен, а по умолчанию это форма без ТЧ товары, а форма выбора видов цен
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Эээ....зачем вам форма документа установки цен? Все манипуляции с документом установки цен необходимо производить без обращения к каким либо формам этого документа, напрямую.
  3. Flash-Dance
    Offline

    Flash-Dance Профессионал в 1С

    Регистрация:
    20 май 2012
    Сообщения:
    365
    Симпатии:
    42
    Баллы:
    54
    Бывает, что нужно не сразу создать документ, а просто получить форму создания нового с уже заполненными параметрами. И уже потом подумать, стоит ли такой документ записывать/проводить. А то бывает, что создашь документ не так, как надо, и приходится удалять. С УстановкойЦен гемор в плане получения формы.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Все равно я не понимаю, зачем получать форму для того, чтобы с ее помощью заполнять документ?
    Создаем документ, заполняем его напрямую, если необходимо проверить работу алгоритма заполнения, то берем форму созданного документа и показываем пользователю, документ при этом не записываем/проводим.
  5. Flash-Dance
    Offline

    Flash-Dance Профессионал в 1С

    Регистрация:
    20 май 2012
    Сообщения:
    365
    Симпатии:
    42
    Баллы:
    54
    Можете пример кода привести, как это делается? А то мысль из головы не выходит: "Может, я чего-то недопонимаю, а на деле, оказывается, все так просто?!". Например, имеем КакойТоДокумент, у него есть КакойТоРеквизит. Как мне открыть форму незаписанного документа с заполненным реквизитом без предварительного её получения? При этом некоторые реквизиты и элементы формы создаются динамически, в зависимости от значений других реквизитов.
  6. TopicStarter Overlay
    Артемka
    Offline

    Артемka Опытный в 1С

    Регистрация:
    13 июл 2014
    Сообщения:
    74
    Симпатии:
    1
    Баллы:
    29
    Я тоже мучился с формой, но времени не было поэтому сделал ввод на основании, выбрал цены из документа и указал в цикле
    Код:
    ВидЦены = СкладПолучатель.РозничныйВидЦен;
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Да уж....в УФ логика работы кардинально поменялась.....
    В общем получилось так:

    upload_2015-2-9_22-38-44.png upload_2015-2-9_22-39-21.png

    Что касается документа "Установка цен номенклатуры", то код заполнения по основанию, вроде не шибко навороченный:

    Код:
    Процедура ЗаполнитьПоДокументуОснованию(ДанныеЗаполнения)
               
        // Заполним реквизиты из стандартного набора по документу основанию.
        ЗаполнениеДокументов.ЗаполнитьПоОснованию(ЭтотОбъект, ДанныеЗаполнения);
       
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("ДокументОснование", ДанныеЗаполнения);
        Запрос.Текст =
            "ВЫБРАТЬ
        |    Док.СуммаВключаетНДС КАК СуммаВключаетНДС,
        |    Док.ВалютаДокумента КАК ВалютаДокумента,
        |    Док.ТипЦен КАК ТипЦен,
        |    ЕСТЬNULL(Док.ТипЦен.ЦенаВключаетНДС, Док.СуммаВключаетНДС) КАК ТипЦенЦенаВключаетНДС
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг КАК Док
        |ГДЕ
        |    Док.Ссылка = &ДокументОснование
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Товары.Номенклатура КАК Номенклатура,
        |    Товары.Цена КАК Цена,
        |    Товары.СтавкаНДС КАК СтавкаНДС,
        |    МИНИМУМ(Товары.НомерСтроки) КАК НомерСтроки
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг.Товары КАК Товары
        |ГДЕ
        |    Товары.Ссылка = &ДокументОснование
        |    И Товары.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
        |
        |СГРУППИРОВАТЬ ПО
        |    Товары.Номенклатура,
        |    Товары.Цена,
        |    Товары.СтавкаНДС
        |
        |УПОРЯДОЧИТЬ ПО
        |    НомерСтроки";
    
        Результаты = Запрос.ВыполнитьПакет();
       
        Шапка = Результаты[0].Выбрать();
        Шапка.Следующий();
       
        Выборка = Результаты[1].Выбрать();
       
        Пока Выборка.Следующий() Цикл
           
            СтруктураОтбора = Новый Структура();
            СтруктураОтбора.Вставить("Номенклатура", Выборка.Номенклатура);
           
            СтрокаТабличнойЧасти = ОбработкаТабличныхЧастейКлиентСервер.НайтиСтрокуТабЧасти(ЭтотОбъект, "Товары", СтруктураОтбора);
           
            Если СтрокаТабличнойЧасти = Неопределено Тогда
               
                СтрокаТабличнойЧасти = Товары.Добавить();
                СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
               
            КонецЕсли;
           
            СтрокаТабличнойЧасти.Цена = УчетНДСКлиентСервер.ПересчитатьЦенуПриИзмененииФлаговНалогов(
                                            Выборка.Цена,
                                            Шапка.СуммаВключаетНДС,
                                            Шапка.ТипЦенЦенаВключаетНДС,
                                            УчетНДСВызовСервераПовтИсп.ПолучитьСтавкуНДС(Выборка.СтавкаНДС));
            СтрокаТабличнойЧасти.Валюта =  Шапка.ВалютаДокумента;
           
        КонецЦикла;
    
    КонецПроцедуры
    roofless нравится это.
  8. Flash-Dance
    Offline

    Flash-Dance Профессионал в 1С

    Регистрация:
    20 май 2012
    Сообщения:
    365
    Симпатии:
    42
    Баллы:
    54
    Вот и я о чем! :)
    roofless нравится это.

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