Здравствуйте. Несколько месяцев изучаю 1С Предприятие 8.0, так сказать с точки зрения программирования. Не знаю как реализовать поставленную задачу, пожалуйста помогите. Суть проблемы: Для документа "Поступления товаров" (с табличной частью, которая имеет реквизиты "Наименование", "Цена", "Количество", "Единица измерения") необходимо создать процедуру, которая должна выполняться при возникновении события "При изменении" и осуществлять автоматическое присваивание реквизиту "Цена" значение цены выбранного элемента справочника "Номенклатура товаров" (Справочник имеет следующие реквизиты: "Цена" и "Единица измерений"). Заранее благодарю.
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
//получить текущую строку табличной части
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
//установить цену
СтрокаТабличнойЧасти.Цена = РозничнаяЦена(Дата, Элемент.Значение);
//пересчитать сумму строки
РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
Из Книги М. Радченко "Практическое пособие разработчика" 1С 8.0.
Чото както вроде не то
или я чего то не понимаю
Flexy, забыл уточнить что процедуры "РозничнаяЦена" и "РассчитатьСумму" должны быть заранее описаны.
Если у Вас их нет, то лучше будет найти указанную книженцию, там как раз нужный Вам пример очень хорошо описан.
Цитата(logist @ 10.05.11, 6:42) необходимо зарегистрироваться для просмотра ссылки
Flexy, забыл уточнить что процедуры "РозничнаяЦена" и "РассчитатьСумму" должны быть заранее описаны.
Если у Вас их нет, то лучше будет найти указанную книженцию, там как раз нужный Вам пример очень хорошо описан.
Спасибо, что поправили.
А то я уже совсем невнимательным стал...
Простите пожалуйста за невежливость, а нельзя ли это реализовать как-то попроще?
Tech, в общем-то всё ещё зависит от того как и где вы храните цену. Как сказал
logist:
Цитата(logist)
лучше будет найти указанную книженцию, там как раз нужный Вам пример очень хорошо описан.
Цена хранится в справочнике "Номенклатура товаров"
Тогда как-то так пробуйте:
Процедура ...ПриИзменении()..
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Номенклатура.Цена;
КонецПроцедуры
Цитата(Tech @ 11.05.11, 7:53) необходимо зарегистрироваться для просмотра ссылки
Простите пожалуйста за невежливость, а нельзя ли это реализовать как-то попроще?
Цитата
осуществлять автоматическое присваивание реквизиту "Цена" значение цены выбранного элемента справочника "Номенклатура товаров" (Справочник имеет следующие реквизиты: "Цена" и "Единица измерений")
значит должно работать
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
//установить цену
СтрокаТабличнойЧасти.Цена = Элемент.Значение.Цена;
КонецПроцедуры
А не проще, в табличной части документа, сделать цену как ссылку на Ваш справочник номенклатура товаров?
Цитата
А не проще, в табличной части документа, сделать цену как ссылку на Ваш справочник номенклатура товаров?
И что получится? В поле цена будет, например, "Гвозди".
Не думаю что гвозди..... в условии сказано что "Номенклатура товаров" (Справочник имеет следующие реквизиты: "Цена" и "Единица измерений").
Цитата(sreda2006 @ 11.05.11, 9:48) необходимо зарегистрироваться для просмотра ссылки
Не думаю что гвозди..... в условии сказано что "Номенклатура товаров" (Справочник имеет следующие реквизиты: "Цена" и "Единица измерений").
И что? А при изменении номенклатуры цена будет меняться по взмаху волшебной палочки?
sreda2006
11.05.11, 10:13
Ну или так..... где ТаблЧасть имя Табличной части Вашего документа
Процедура ПриходтТипПриИзменении(Элемент)
// Вставить содержимое обработчика.
ЭлементыФормы.ТаблЧасть.ТекущаяСтрока.Цена=Справочники.Номенклатуры.НайтиПо
Коду(
ЭлементыФормы.ТаблЧасть.ТекущаяСтрока.Тип.Код).Цена;
КонецПроцедуры
sreda2006, Что ЭТО? Чем это лучше чем в сообщениях #9 #10
sreda2006
11.05.11, 10:27
согласен, тоже самое
А если цена содержащаяся в справочнике Номенклатура товаров, находится не в табличной части справочника, а просто как реквизит этого справочника?
Tech, вы вообще хоть что-то делаете, пробуете? Или тупо спрашиваете всё, что в голову взбредёт?
Цитата(Vofka @ 14.05.11, 14:22) необходимо зарегистрироваться для просмотра ссылки
Tech, вы вообще хоть что-то делаете, пробуете? Или тупо спрашиваете всё, что в голову взбредёт?
Спрашиваю потому что, хочу понять почему все варианты, которые были предложены и опробованы мной не работают.
"Несколько месяцев" назад нужно было исключить из своего лексикона вот это "не работает".
Элементу формы (Номенклатура) для события ПриИзменении задается процедура-обработчик, в которой прописана установка Цены в той же строке ТЧ.
Возьмите в руки Отладчик и определите, что именно у Вас "ни работаит":)
Автоматически не присваивает реквизиту Цена значение цены выбранного элемента справочника "Номенклатура товаров"
В обработчик заходит?
Приведите код обработчика, укажите точку останова и значения переменных в ней.
Цитата(Zaval @ 14.05.11, 16:47) необходимо зарегистрироваться для просмотра ссылки
В обработчик заходит?
Приведите код обработчика, укажите точку останова и значения переменных в ней.
В обработчик заходит. Когда выбираю наименование товара ничего не происходит, а должна в поле "Цена" автоматически вставляться цена из справочника.
Если в обработчик заходит - то всего две возможности: либо не может получить цену, либо не устанавливает.
Пользуйтесь Отладчиком! Где текст обработчика?
Это значит что Вы что-то не договариваете, либо что то не то делаете, потому что из Ваших слов предложенные варианты работать должны
Цитата(Batchir @ 14.05.11, 17:25) необходимо зарегистрироваться для просмотра ссылки
Это значит что Вы что-то не договариваете, либо что то не то делаете, потому что из Ваших слов предложенные варианты работать должны
Вроде делаю все правильно, говорю все как есть. Справочник "Номенклатура товаров" - иерархический, имеет реквизиты "Цена" и "Единица измерения", табличная часть отсутствует. Документ "Поступление товаров": реквизиты шапки: "Поставщик", реквизиты табличной части: "Наименование", "Цена", "Количество", "Единица измерения". Процедура должна при изменении наименования товара автоматически вставлять цену товара выбранную из справочника "Номенклатура товаров".
Тип реквизита Наименование? (не стОит так реквизиты обзывать)
Цитата(Zaval @ 14.05.11, 18:25) необходимо зарегистрироваться для просмотра ссылки
Тип реквизита Наименование? (не стОит так реквизиты обзывать)
"Наименование" есть ссылкой СправочникСсылка.Номенклатура_товаров.
Процедура Присваивание_ПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.ТабличнаяЧасть1.ТекущиеДанные;
СтрокаТабличнойЧасти.Цена = Справочники.Номенклатура_товаров.Цена;
КонецПроцедуры
Какого именно элемента справочника цена Вам нужна?
СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Наименование.Цена;
Вот так будет цена номенклатуры из той же строки
А работать, скорее всего, будет это:
СтрокаТабличнойЧасти.Цена.Значение = СтрокаТабличнойЧасти.Наименование.Цена;
СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Номенклатура_товаров.Цена;
СтрокаТабличнойЧасти.Цена = Справочники.Номенклатура_товаров.Цена;
Не соответствует ни одному из предложенных вариантов и является полным бредом. Ничего и не должно работать
Как-то так
Процедура Присваивание_ПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.ТабличнаяЧасть1.ТекущиеДанные;
СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Номенклатура_товаров.Цена;
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.