8.х Подскажите

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

  1. TopicStarter Overlay
    NeiTRoN4ik
    Offline

    NeiTRoN4ik

    Регистрация:
    20 фев 2015
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток, уважаемые!
    1с впервые открыл 3 дня назад. До того был небольшой опыт работы на Паскале много лет назад))
    В общем вопрос такой.
    Приходная накладная записывает в регистр сведений Товар, Склад и Цену. С этим я справился.
    И теперь эту цену надо достать в Расходную накладную. То есть в отладчике мы заполняем в расходной Склад(шапка), товар и количество(табличная часть). В этой же табличной части и цена. Вот как сделать, чтобы цена заполнялась из регистра сведений?
    Я думал сделать через Форму "ТоварыТоварПриИзменении":

    Код:
    &НаКлиенте
    Процедура ТоварыТоварПриИзменении(Элемент)  
        СтрокаТаблицы = ЭлементыФормы.Товары.ТекущиеДанные;
        Данные.Сумма = Данные.Цена * Данные.Количество;
    
         
        Запрос = Новый Запрос;
     
        Запрос.УстановитьПараметр("Ссылка", Ссылка);
        Запрос.УстановитьПараметр("Склад", Склад);
        Запрос.УстановитьПараметр("Товар", СтрокаТаблицы.Товар);
    
        Запрос.Текст=
        "Выбрать
        |    Цена_Продажи.Цена КАК Цена
        |ИЗ
        |   РегистрСведений.Цена_Продажи.СрезПоследних(Склад=&Склад И Товар=&Товар) КАК ЦенаПродажи
        |ГДЕ
        |    Цена_Продажи.Ссылка= &Ссылка";
                             
     
        Результат = Запрос.Выполнить();
            Если Результат.Пустой() Тогда
                Данные.Цена=0;
            Иначе
                Выборка = Результат.Выбрать();
                Пока Выборка.Следующий() Цикл
                    Данные.Цена = Выборка.Цена;
                КонецЦикла;
            КонецЕсли;
    
    КонецПроцедуры
    Но ошибка Тип не определен (Запрос)
    Запрос = Новый <<?>>Запрос; (Тонкий клиент)

    Я так понимаю, что Запросы нельзя в формах писать? Надо в модулях? Или нет?
    Менял "Наклиенте" на "Насервере", но тогда возникает куча ошибок с переменными.

    А если писать запросы в модуле документа, то какую процедуру надо вызывать? ОбработкаЗаполнения или ОбработкаПроверкиЗаполнения

    Спасибо, кто осилил))
    Последнее редактирование модератором: 24 фев 2015
  2. saha25
    Offline

    saha25 Опытный в 1С

    Регистрация:
    30 окт 2007
    Сообщения:
    95
    Симпатии:
    3
    Баллы:
    29
    Надо примерно так:

    Код:
    &НаКлиенте
    Процедура ТоварыТоварПриИзменении(Элемент)
         СтрокаТаблицы = ЭлементыФормы.Товары.ТекущиеДанные;
         СтрокаТаблицы.Цена=ПолучитьЦенуТовара(СтрокаТаблицы.Товар)
        СтрокаТаблицы.Сумма=СтрокаТаблицы.Цена*СтрокаТаблицы.Количество;
    КонецПроцедуры
    
    &НаСервере
    Функция ПолучитьЦенуТовара(Ссылка)
           Запрос=Новый Запрос;
           ЗАпрос.УстановитьПараметр("Товар", Ссылка);
           ....
          тут запрос
          Выборка=Запрос.Выполнить().Выбрать();
          Если Выборка.Следующий() Тогда
               Возврат Выборка.Цена;
          Иначе
               Возврат 0;
          КоенцЕсли;
    КонецФункции
    
  3. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Не стоит называть переменные служебными словами, это вам на будущее.
Похожие темы
  1. jhlk
    Ответов:
    1
    Просмотров:
    747
  2. Сергей5791
    Ответов:
    15
    Просмотров:
    975
  3. Вольный
    Ответов:
    1
    Просмотров:
    298
Загрузка...

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