Имя: Пароль:
1C
1С v8
В "Документ" не подгружается "Цена" из "РегистраСведений"
0 Tango and Cash
 
27.03.17
18:18
Всем низкий поклон, Дамы и Господа =)
Изучаю 1С самостоятельно по курсам в "тырнете", пока мучаюсь с первой проблемой:
Нужно подгружать "ЦЕНУ" автоматически из "РегистраСведений" в "Документ". А оно не хочет подгружаться!(гром и молния)

В "Документе" - "ПоступлениеТоваров" есть табличная часть - Номенклатура - Цена - Количество - Сумма.  
Когда провожу документ, в регистре это действие фиксируется. Затем создаю новый документ и в табличной части выбираю продукт, который ранее был уже проведен и в регистре есть, но цена не добавляется автоматом к нему. Еще странно, что Яблоки (документ №1 - проведен и есть в регистре) и Груши(документ №2 - проведен и есть в регистре) легко добавляются в новом документе и цена подгружается, а вот дальше, чтобы не создал и в регистре отображаясь, ну ни в какую не хочет цена подгружаться! Подскажите, плиз =)

в МодулеОбъекта Документ ПоступлениеТоваров : [spoiler=код]Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    // регистр ЦеныПоставщиков
    Движения.ЦеныПоставщиков.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.ЦеныПоставщиков.Добавить();
        Движение.Период = Дата;
        Движение.Контрагент = Контрагент;
        Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
        Движение.Цена = ТекСтрокаТовары.Цена;
    КонецЦикла;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры [/spoiler]

в ФормеДокумента [spoiler=код]&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
    
    ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
    
    ТекущиеДанные.Цена = ПолучитьЦенуПокупкиНоменклатуры(ТекущиеДанные.Номенклатура, Объект.Контрагент, Объект.Дата);
    
    РассчитатьСуммуТабличнойЧастиТовары();
    
КонецПроцедуры


&НаСервереБезКонтекста

Функция   ПолучитьЦенуПокупкиНоменклатуры(Номенклатура, Контрагент, Период)
    
         //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЦеныПоставщиковСрезПоследних.Цена
        |ИЗ
        |    РегистрСведений.ЦеныПоставщиков.СрезПоследних(
        |            &Период,
        |            Номенклатура = &Номенклатура
        |                И Контрагент = &Контрагент) КАК ЦеныПоставщиковСрезПоследних";
    
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Период", Период);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
        
          Возврат ВыборкаДетальныеЗаписи.Цена;
        
    КонецЕсли;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    
КонецФункции    
[/spoiler]
1 jsmith82
 
27.03.17
18:31
Может, дата не заполнена
2 Господин ПЖ
 
27.03.17
18:32
(0) отладчик все знает
3 Tango and Cash
 
27.03.17
18:46
спасибо, пошел мучать дату и отладчик(для начала).

Кстати, я регистрировался как "Господин ПЖ" и форум не ругался на то, что уже такое имя занято, а потом забанили =)
4 Господин ПЖ
 
27.03.17
18:47
>Господин ПЖ

на святое руку поднимаешь...
5 nordbox
 
27.03.17
18:56
(0) а в регистре вообще то есть эти цены именно поэтому контрику? )
6 Tango and Cash
 
27.03.17
19:01
(5) ага, есть! Ладно, отладчик завтра начну мучать и мне полезно с ним знакомиться и к вам меньше приставать) а если тупик будет, то опять на коленях приползу!
7 Tango and Cash
 
28.03.17
14:02
Ура! Сегодня я провел баклажаны! Проблему решил, но не совсем понимаю! Поясните, плиз.

1. Я создал новый документ, выбрал баклажаны, поставил им цену, провел документ. Документ провелся с текущей датой и  временем, например, 28/03/2017 13:00:00. Все, он есть в Регистре с такой же датой и временем.
2. Создаю новый документ, выбираю этого  же поставщика, баклажан и ничего не происходит с ценой, в графе дата на этот момент стоит текущая дата 28/03/2017 00:00:00. Если сперва меняю в дате время на большее, чем в проведенном документе, например, 28/03/2017 14:00:00, тогда ЦЕНА подгружается!

Поясните, как это работает? И корректно ли?
8 фросия
 
28.03.17
14:05
(7) так и работает. корректно.
РС периодический, и в 28/03/2017 00:00:00 ещё нет цены. а в 28/03/2017 13:00:00 уже есть
9 Tango and Cash
 
28.03.17
14:37
тогда нужно обработку писать, чтобы при создании документа время сразу ставилось текущее,а не 00:00:00, если по логике судить? чтобы лишних действий не производить?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший