Доброй ночи. Задача следующая. Есть справочник Номенклатура. В нем товары и услуги с ценами. Я создал в форме элемента справочника дополнительные реквизиты КЗП - коэфициент зарплаты и ЗП - сама зарплата. На каждый товар я могу проставить коэфициент и вычислить часть, которая будет идти работнику. В справочние я это уже сделал. В список подбора добавил колонку ЗП и при подборе она появляется с правильными вычисленными для каждого товара и услуги значениями. Теперь мне в табличную часть РасходнойНакладной нужно добавить колонку ЗП и соответствующие значения. Колонку я уже добавил. Но что прописать в формуле, чтобы в ней при подборе из списка подбора проставлялось значение ЗП из справочника Номенклатура по каждому товару? Я смотрел на формулы соседних колонок. Там очень сложно выбираются значения. Через глобальный модуль. Черт ногу сломит. Нельзя ли это решить попроще. Ведь товар в справочнике, реквизит справочника ЗП уже создан и автоматически заполнен, реквизит табличной части Расходной накладной ЗП тоже создан, колонка добавлена, в списке подбора значение ЗП добавлено и появляется. Как его перенести в колонку ЗП табличной части РасходнойНакладной? Спасибо!
Также как и цену товара или базовую единицу измерения. (Товар.ЗП например).
ZUBR @ Сегодня, 2:17
,
я бы ещё на количество умножал, на случай если товар/услуга в документе не в единственном экземпляре
Процедура ИзмТМЦ() // процедура из формулы элемента формы
Если ТМЦ.Выбран()=1 Тогда
......
ЗП = ТМЦ.ЗП * Кво;
КонецЕсли;
КонецПроцедуры
Pepe @ Сегодня, 12:30
, колонка ЗП в табличной части выводится пустая. То есть, реквизит ЗП справочника конкретного товара, вычисленный в справочнике, не переносится в табличную часть документа РасходнаяНакладная. Когда я нажимаю подбор по каталогу, появляется таблица справочника с товарами, где есть своя колонка ЗП и в ней проставлены вычисленные значения ЗП для каждого товара. Колгда я выбираю товар, он появляется в таблице внизу документа. Но там только две колонки - товар и количество. Затем я переношу отобранные позиции в документ, но колонка ЗП табличной части РасходнойНакладной остается пустой. Я в формуле колонки прописывал и Товар.ЗП, и Справочник.Номенклатура.Товар.ЗП, все равно не появляется ничего...
Макс1С @ Сегодня, 15:19
,
на элементе формы я ничего не прописывал. Вообще. Что такое ТМЦ? Если можно, подскажите, что нужно прописать.
ZUBR @ Сегодня, 16:07
,
В форме подбора видно добавленную колонку потому, что это всё поля одной таблицы (справочник товаров) , а ТЧ документа это совсем другая таблица (и физически тоже), в ней есть свои поля - Товар мы заполняем вручную, но программа не знает что поле "ЗП" должно заполнятся из реквизита товара.
на элементе уже всё прописано, в формуле указана процедура которая вызывается после выбора Товара
Вот в ней и надо прописать заполнение добавленной колонки из реквизита.
Процедура ИзмТМЦ() // процедура из формулы элемента формы
Если ТМЦ.Выбран()=1 Тогда
......
ЗП = ТМЦ.ЗП * Кво;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПодбора(Выб)
Если глОбработатьПодбор(Контекст,Выб) = 1 Тогда
ИзмТМЦ();
КонецЕсли;
КонецПроцедуры
Макс1С @ Вчера, 18:25
,
не, я так и не нашел, как это сделать. Долго копался в коде. В этой конфигурации добавление товара в таблицу РасходнойНакладной прописано в глобальном модуле. Причем очень сложно. Со ссылками на другие процедуры модуля. Тут есть справочник Номенклатура, ему подчинен справочник Цены. Очень трудно постичь. Если не найду более простой способ, тогда пойду каким-то другим путем...
Чтобы не разбираться в хитросплетениях кода разработчика данной программы, я решил упростить задачу. В документе РасходнаяНакладная в табличную часть я добавляю новую колонку ЗП. В справочник Товар.Номенклатура добавляю новый реквизит КЗП. Теперь мне нужно каждую позицию СуммаСНДС умножить на соответствующее значение КЗП из справочника и поместить его в колонку табличной части ЗП. Для этого на форме РасходнойНакладной я поместил кнопку Виконав и пытаюсь написать в модуле формы процедуру Виконав.
Для начала я упрощаю задачу - не умножаю СуммаСНДС на значение из справочника, потому что не знаю, как написать ссылку на это значение, а умножаю просто на число 0.4 Казалось бы, все должно работать. Но почему-то заполняется только ячейка той строки, на которой в данный момент стоит курсор. Если хочешь заполнить другую ячейку - поставь курсор на соответствующую строку. И опять нажми кнопку. Привожу код. Код написан в модуле формы РасходнаяНакладная.
Процедура Виконав() //расчет зп по документу
СПР = СоздатьОбъект ("Справочник.Номенклатура");
Док = ТекущийДокумент();
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ЗП = СуммаСНДС*0.4;
КонецЦикла;
КонецПроцедуры
ЗП = СуммаСНДС*СПР.ПолнНаименование("Товар").КЗП;
ЗП = СуммаСНДС*СПР.Товар.КЗП;
ZUBR @ Сегодня, 19:38
,
В 7.7. надо всё проще, немного усложнили.
Процедура Виконав() //расчет зп по документу
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ЗП = СуммаСНДС*0.4;
//или
ЗП = СуммаСНДС*Товар.КЗП; // где "Товар" - имя колонки в ТЧ; "КЗП" - имя добавленного в товар реквизита
КонецЦикла;
КонецПроцедуры
Макс1С @ Сегодня, 20:49
, да что же это такое! Действительно заработало! Неужели все так просто? Признаюсь, я полдня бился(((
Макс, большущее-большущее спОсибо!!!
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua