Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Окт 2017, 04:57
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Заполнение значений табличной части документа на форме  (Прочитано 868 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Константин Р.

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-10
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день!

Вопрос в следующем:
Есть документ "РасходнаяНакладная" с Табличной частью "Товары" с реквизитами "Номенклатура", "Количество", "ЦенаЕдиницы", "Сумма".
Есть форма документа "РасходнаяНакладная" в которой "Сумма" в "Товары" рассчитывается автоматически (Сумма = Количество * ЦенаЕдиницы).
Есть регистр сведений "ЦеныПродажи", в которые заполняется данными из документов "ПрайсЛист" (дата, номенклатура, цена единицы).

Задача: Сделать на форме документа "РасходнаяНакладная" кнопку "Заполнить цены", при нажатии которой в реквизиты "ЦенаЕдиницы" табличной части "Товары" помещаются последние цены (на дату документа) из регистра сведений "ЦеныПродажи"

При следующей реализации в модуле формы команды кнопки:
        ...

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

      Иначе
         ТекСтрока.ЦенаЕдиницы = 0;
         ТекСтрока.Сумма = 0;
      КонецЕсли;
      
      ВыборкаДетальныеЗаписи.Сбросить();
      
   КонецЦикла;


возникает следующая проблема:

Реквизит "ЦенаЕдиницы" заполняется для всех строк "Товары", которые уже были записаны! в документе. Если добавить новую строку и не записывая документ нажать кнопку "Заполнить цены", то в этой новой строке реквизит "ЦенаЕдиницы" не заполняется.

Всякие мои танцы с бубнами здесь не помогли.

Поэтому подскажите, пожалуйста, как правильно организовать такой ввод данных, или как решить эту проблему.


Оффлайн KatiaP

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-10
  • Сайт: 
Видимо нужно анализировать изменения в табличной части

Оффлайн pavl_vs

  • *****
  • Сообщений: 1052
  • РЕПУТАЦИЯ: 168
  • КПД: 16%
  • Регистрация: 2011-05-09
  • Сайт: 
  • Профессия: Программист 7.7
Константин Р., то, что нет записи в новую строку, естественно - обращение идет к ТЧ записанного документа.
Заполнение новой строки следует проводить через какое-нибудь Событие, типа "ПриИзменении", "НачалоВыбора"...

А заполнение по кнопке можно оставить на случай изменения цен по списку.

Оффлайн Константин Р.

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-10
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо. Но это всё же другая логика работы формы. Хотелось бы знать именно как заполнять все значения (и старые, и новые) по нажатию кнопки.
Интересно, существует ли вообще какой-либо способ так сделать.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Существует. Выгружайте таблицу документа в ТЗ и подсовывайте ее в запрос.

Оффлайн Константин Р.

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-10
  • Сайт: 
  • Профессия: Ученик 1С
Можете поподробнее:
1. Как выгрузить ТЧ  в ТЗ?
2. Как подсунуть ТЗ в запрос?

я ещё только учусь :))

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Можете поподробнее:

можно Crtl+F1 и ищем соответствующий метод выгрузить()


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4384
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7576
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4605
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

Автор ppkmliteРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 7991
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
Фамилия руководителя в печатных формах документа "Акт сверки", "Акт об оказании"

Автор MKozzlikРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7181
Последний ответ 03 Фев 2012, 17:27
от Dinah

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
91 Сообщений
alex0402
46 Сообщений
AIFrame
42 Сообщений
Oldman06
31 Сообщений
vitasw
29 Сообщений
Golickoff Golickoff
27 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
25 Сообщений
MuI_I_Ika MuI_I_Ika
24 Сообщений
Liv98 Liv98
20 Сообщений
DmitriyF DmitriyF
14 Сообщений

* Кто онлайн

  • Точка Гостей: 263
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal