Имя: Пароль:
1C
 
Радченко занятие 9, нужна помощь
0 JustD
 
16.10.20
07:17
Приветсвую всех. Изучаю книгу Радченко Хрусталева, на 9 уроке в процессе следования за описанием "Вызов функции при выборе номенклатуры
и заполнение цены в документе" столкнулся с проблемой на выходе: при изменении даты  уже созданного документа (Оказание услуг) цена не меняется, хотя должна (по крайней мере именно так происходит на примере в книге) т.к. в зависимости от периода времени цена менялась. При этом если я создаю новый документ цена меняется в зависимости от периода.
1 Chameleon1980
 
16.10.20
07:19
чече?
2 JustD
 
16.10.20
07:30
(1)  :) вот задача урока: "Итак, задача, которая перед нами стоит, заключается в следующем.
При редактировании документа ОказаниеУслуги нам необходимо
обеспечить автоматическое заполнение поля Цена после того, как
пользователь выберет услугу. Причем цена услуги должна определяться исходя из даты создаваемого документа."

т.е. есть услуга которая предполагает под собой расход материалов в количестве 1 шт., этот расход отражается в документе "ОказаниеУслуг", цена на расходники менялась, эти изменения отражены в регистре сведений "цены на номенклатуру". Соответственно если в документе Оказание услуг изменить дату оказанной услуги, то в зависимости от стоимости расходника, на текущий период, должна меняться цена. Так вот цена меняется в зависимости от временного периода только при создании документа, если я меняю дату у уже созданного документа то цена не меняется, а должна согласно примеру из книги.
3 ads55
 
16.10.20
07:38
(2) у элемента управления "ДатаДокумента" поставь обработчик события ПриИзменении и пусть он цены меняет.
4 Kigo_Kigo
 
16.10.20
08:05
А ты хочешь, что бы документ сам понял, что тебе надо поменять цену, по этому он сам запросом полезет в регистр "цены на номенклатуру" и определит, какая была цена и ее и сумму пресчитает? Однако, 1с еще таким интеллектом не обладает )))))
5 ReaLg
 
16.10.20
08:09
(4) Ну почему же. В (0) написано "при изменении даты  уже созданного документа". В УПП цены перезаполняются при изменении даты заказа. У меня от желания пользователя зависит, перезаполнять или нет, в типовой, если мне память не изменяет, перезаолнялись всегда.
6 Kigo_Kigo
 
16.10.20
08:12
(5) А это как? откуда система знает, надо тебе пересчитать цены или нет?
может цена уже фиксирована договором к примеру и изменять ее уженельзя, короче бред, нет такого в типовых, если и есть то с вопросом или отдельной кнопкой
7 ДенисЧ
 
16.10.20
08:13
(6) Как раз с вопросом в типовых и сделано.
8 Kigo_Kigo
 
16.10.20
08:13
или к примеру в течении квартала не закрыли доки, решили провести текущим кварталом по согласованию сторон, и тут херак вся отчетность кхерам, цены уже изменились
9 Kigo_Kigo
 
16.10.20
08:16
(7) да и я про то, я этих типовых знаю, но что бы они сами так обезьянничали, не помню
10 ReaLg
 
16.10.20
08:24
(7) Значит, изменяет :)) У меня смутные воспоминания, что я там когда-то что-то допиливал на эту тему...
11 ReaLg
 
16.10.20
08:26
(6) "У меня от желания пользователя зависит" Вопрос пользователю задается. Денис говорит, что это типовой функционал.
12 Kigo_Kigo
 
16.10.20
08:28
(11) так это логично же
13 ReaLg
 
16.10.20
08:34
(12) Логично. Я запутался о чем спор.

В (4) написано "А ты хочешь, что бы документ сам понял, что тебе надо поменять цену"
В (0) написано "при изменении даты  уже созданного документа".
Я и написал, что при изменении даты документ понимает, что, возможно, надо пересчитать цены и задает вопрос пользователю, все логично.
14 Мимохожий Однако
 
16.10.20
08:48
(13) "Документ понимает "...) , если к дате документа привяжешь событие и процедуры перезаполнения цен.
15 JustD
 
16.10.20
10:51
(4)  насколько  понимаю таков замысел занятия.
из книги:
- Найдем в конфигураторе документ ОказаниеУслуги и откроем его
форму ФормаДокумента.
- ПереченьНоменклатурыНоменклатура - свойства события При Изменении,
- модуль редактора формы - Внесем в него следующий текст:

// Получить текущую строку табличной части.
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
// Установить цену.
СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(
Объект.Дата, СтрокаТабличнойЧасти.Номенклатура);
// Пересчитать сумму строки
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

это из книги, ссылка на книгу онлайн в пдф https://www.academia.edu/31880297/Радченко_М_Г_1С_Предприятие_8_3_Практическое_пособие_разработчика_Примеры_и_типовые_приемы_2013_
надеюсь откроется :)
страница 274
16 Timon1405
 
16.10.20
10:56
(0) по данной книге есть специальный форум http://devtrainingforum.v8.1c.ru/forum/ возможно ваша проблема уже там решена
17 JustD
 
16.10.20
10:59
(16) спасибо, изучу! первый день на форуме
18 fisher
 
16.10.20
11:02
(16) +1
(17) Может, там дальше в книге будет добавление пересчета цены при изменении даты документа. А нет - значит нет :)