Версия для печати темы (https://pro1c.org.ua/index.php?s=3d252534d565566baf2b73a8153acb97&showtopic=62870)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Автоматичне заповнення ціни та підрахунок суми товару в видатковій накладній

Автор: igorslo 13.11.20, 14:19

Завдання:

У видатковій накладній потрібно, щоб автоматично заповнювалась ціна із номенклатури та множилась на кількість і давала суму для кожного товару.

&НаКлиенте
Процедура КількістьПриИзменении(Элемент)
    Эл = Элементы.Товари.ТекущиеДанные;
      Эл.Сума = Эл.Ціна * Эл.Кількість;
КонецПроцедуры

&НаКлиенте
Процедура ЦінаПриИзменении(Элемент)
    Эл = Элементы.Товари.ТекущиеДанные;
      Эл.Сума = Эл.Ціна * Эл.Кількість;
КонецПроцедуры


Якщо використовувати цей код, тоді треба вказувати і ціну, і кількість вручну зате сума рахується.
Пробував і підставляти ціну використовуючи "ПутьКДанным", тоді при виборі товару мені автоматично підгружалася ціна, але тепер не множилась ціна на кількість, тому й суму потрібно вводити вручну.


1С:Предприятие 8.3, учебная версия (8.3.8.1933)

Автор: Gazulo 13.11.20, 14:26

igorslo @ Сегодня, 15:19 * ,
Ціна це реквізит номенклатури?, Тоді при виборі номенклатури треба встановлювати ціну викликати процедуру розрахунку суми.

Автор: igorslo 13.11.20, 14:47

Gazulo @ Сегодня, 14:26 * ,
Ціна це реквізит Справочника номенклатури, а тут ціна як окремий об'єкт.

https://pro1c.org.ua/redirect.php?https://ibb.co/GJhbryn

Gazulo @ Сегодня, 14:26 * ,
Може надати ще якісь деталі для кращого розуміння?

Автор: Gazulo 13.11.20, 14:58

igorslo @ Сегодня, 15:47 * ,
Тоді при виборі номенклатури треба встановлювати ціну в документі і викликати процедуру розрахунку суми

Автор: igorslo 13.11.20, 15:06

Gazulo @ Сегодня, 14:58 * ,
Як це реалізувати? Бо щось не дуже розумію.

Автор: Gazulo 13.11.20, 15:27

igorslo @ Сегодня, 16:06 * ,

Приблизно так

&НаКлиенте
Процедура ТоварПриИзменении(Элемент)
  
   СтрокаТЧ = Элементы.Товари.ТекущиеДанные;
   ТоварПриИзмененииНаСервере(СтрокаТЧ.ПолучитьИдентификатор());

КонецПроцедуры

&НаСервере
Процедура ТоварПриИзмененииНаСервере(ИдентификаторСтрокиТЧ)
    
    СтрокаТЧ = Объект.Товари.НайтиПоИдентификатору(ИдентификаторСтрокиТЧ);    


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

КонецПроцедуры

Автор: igorslo 13.11.20, 15:41

Gazulo @ Сегодня, 15:27 * ,
Код вставив, там треба ще щось дописати? (Наприклад, там де "Ссылка")

Не працює; ціну не підтягує і суму тим більше не рахує, зразу пропускає рядок.

Автор: Gazulo 13.11.20, 16:52

igorslo @ Сегодня, 16:41 * ,
я ж конфігурації вашої не маю, то треба вже самому дивитись я написав приблизний код як має бути.
Хіба підключусь гляну.

Автор: igorslo 13.11.20, 19:25

Gazulo @ Сегодня, 16:52 * ,
Можу надіслати, тільки куди?
Або куди підключити?

Автор: Gazulo 16.11.20, 9:28

igorslo @ 13.11.20, 20:25 * ,
nazar_budivskiy@ukr.net

Автор: igorslo 16.11.20, 12:35

Gazulo @ Сегодня, 9:28 * ,
Вельми вдячний, усе працює

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua