Как в форме документа сделать сумму

1. user982129 24.05.18 14:00 Сейчас в теме
Ситуация 1С:Гостиница ( курсач)
____
Есть справочник Номера , там указаны комнаты и сколько они стоят , есть документ бронь , где по условию оператор должен бронировать номера , так вот вопрос ...
скажите пожалуйста как ( там где комната 202 , это ссылка на справочникНомера) на основании имени из справочника получить его стоимость за день ? и после из 2 дат , получить количество дней и перемножить с ценой , полученное присвоить в сумму ?
Прикрепленные файлы:
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 24.05.18 14:24 Сейчас в теме
(1) Событие ПриИзменении реквизита НомерКомнаты, серверная процедура
СуммаЗаДень = НомерКомнаты.СтоимостьЗаДень;
КоличествоДней = ((ДатаОкончанияБронирования - ДатаБронирования) / 86400) + 1;
Сумма = СуммаЗаДень * КоличествоДней;
+
3. user982172 24.05.18 14:46 Сейчас в теме
{Документ.Бронь.Форма.ФормаДокумента.Форма(4,16)}: Переменная не определена (НомерКомнаты)
СуммаЗаДень = <<?>>НомерКомнаты.СтоимостьЗаДень; (Проверка: Сервер)
{Документ.Бронь.Форма.ФормаДокумента.Форма(5,20)}: Переменная не определена (ДатаОкончанияБронирования)
КоличествоДней = ((<<?>>ДатаОкончанияБронирования - ДатаБронирования) / 86400) + 1; (Проверка: Сервер)
{Документ.Бронь.Форма.ФормаДокумента.Форма(5,48)}: Переменная не определена (ДатаБронирования)
КоличествоДней = ((ДатаОкончанияБронирования - <<?>>ДатаБронирования) / 86400) + 1; (Проверка: Сервер)
 не выходит 
+
6. Dream_kz 129 24.05.18 15:40 Сейчас в теме
(3) ну епт, это ж пример логики. зачем брать курсач по 1с, если в коде не бум бум?

СуммаЗаДень = Объект.НомерКомнаты.СтоимостьЗаДень; 
КоличествоДней = ((Объект.ДатаОкончанияБронирования - Объект.ДатаБронирования) / 86400) + 1; 
Сумма = СуммаЗаДень * КоличествоДней;
+
7. user982172 24.05.18 16:30 Сейчас в теме
(6)
(3) ну епт, это ж пример логики. зачем брать курсач по 1с, если в коде не бум бум?


Нету выбора .... я вообще веб разработчик ... какого лешего мне дали 1с ? я не знаю ... однако сказали сделать самую простенькую ....
С датой я разобрался ответ был
РазницаВДнях = (НачалоДня(Объект.ДатаОкончанияБронирования) - НачалоДня(Объект.ДатаБронирования)) / (60 * 60 * 24);
______
А вот как получить исходя из названия стоимость я не могу разобраться ....

у меня же в справочнике много комнат ... и на все разная цена .... значит цена должна меняться если я выберу новую комнату .... как это сделать ?
+
8. user982172 24.05.18 16:33 Сейчас в теме
(6) я пробовал и так и сяк , не дает стоимость
_____
{Документ.Бронь.Форма.ФормаДокумента.Форма(4)}: Поле объекта не обнаружено (НомерКомнаты)
	А = ЭтотОбъект.НомерКомнаты;

и вашу

{Документ.Бронь.Форма.ФормаДокумента.Форма(4)}: Поле объекта не обнаружено (СтоимостьЗаДень)
	СуммаЗаДень = Объект.НомерКомнаты.СтоимостьЗаДень; 
+
9. Dream_kz 129 24.05.18 16:43 Сейчас в теме
(8)
Поле объекта не обнаружено (СтоимостьЗаДень)

Поле в котором стоимость лежит, как называется? скрин из конфигуратора выложи


(7)
у меня же в справочнике много комнат ... и на все разная цена .... значит цена должна меняться если я выберу новую комнату

и так будет работать, когда изменишь комнату
+
10. user982172 24.05.18 16:50 Сейчас в теме
(9)
Поле в котором стоимость лежит, как называется? скрин из конфигуратора выложи

Оно лежит по пути

Справочники -> Номера -> Реквизиты -> СтоимостьЗаДень
____
Напоминаю эту штуку я хочу получить в перменную . В документе Бронь , где есть ссылка на название комнаты из этого справочника
Прикрепленные файлы:
+
11. user982172 24.05.18 16:51 Сейчас в теме
(9) вот что я хочу , выбрать комнату и получить в перменную ее цену
Прикрепленные файлы:
+
4. user982172 24.05.18 14:48 Сейчас в теме
&НаСервере
Процедура НомерКомнатыПриИзменении(Элемент)
СуммаЗаДень = НомерКомнаты.СтоимостьЗаДень;


КонецПроцедуры
{Документ.Бронь.Форма.ФормаДокумента.Форма(4,16)}: Переменная не определена (НомерКомнаты)
СуммаЗаДень = <<?>>НомерКомнаты.СтоимостьЗаДень; (Проверка: Сервер)
+
12. user982172 24.05.18 16:54 Сейчас в теме
Документ.Бронь.Форма.ФормаДокумента.Форма(4)}: Поле объекта не обнаружено (НомерКомтаны)
СуммаЗаДень = ЭтотОбъект.НомерКомтаны.СтоимостьЗаДень;


{Документ.Бронь.Форма.ФормаДокумента.Форма(4)}: Поле объекта не обнаружено (НомерКомтаны)
СуммаЗаДень = Объект.НомерКомтаны.СтоимостьЗаДень;



не сработало
+
13. Dream_kz 129 24.05.18 17:01 Сейчас в теме
(12)
НомерКомтаны

очепятка

скрин из конфигуратора с процедурами покажи
+
14. user982172 24.05.18 17:03 Сейчас в теме
(13)Вот это ? Давайте свяжемся через что нибудь .... мне только эта функция и осталась ...
Прикрепленные файлы:
+
15. Dream_kz 129 24.05.18 17:12 Сейчас в теме
(14) Ну понятно, я ж сказал что процедура должна быть на сервере. Делай так:

СуммаЗаДень =ПолучитьСуммуЗаДень(Объект.НомерКомнаты);


//ЭТО ОТДЕЛЬНАЯ ФУНКЦИЯ, ЕЕ РАСПОЛАГАЙ ПОСЛЕ ПРОЦЕДУРЫ
&НаСервереБезКонтекста
Функция ПолучитьСуммуЗаДень(НомерКомнаты)

Возврат НомерКомнаты.СтоимостьЗаДень;

КонецФункции
Показать
+
16. user982172 24.05.18 17:16 Сейчас в теме
(15)
&НаСервереБезКонтекста
Функция ПолучитьСуммуЗаДень(НомерКомнаты)

Возврат НомерКомнаты.СтоимостьЗаДень;

КонецФункции


О БОЖЕ МОЙ ДААААААААААААА !!!!!!!! ВЫ ВОЛШЕБНИК !!!!!!!
+
17. Dream_kz 129 24.05.18 17:19 Сейчас в теме
(16) Сделай доброе дело, разрабатывай сайты дальше =)
+
18. user982172 24.05.18 17:28 Сейчас в теме
(17) я вам клянусь , что свою жизнь с 1С никогда связывать не буду :) есть у нас такой предмет СПП по которому должна быть Java ,а тут преподу стукнуло и она захотела 1С ....
____
можно последний штрих ? подскажите как не забронировать 2 одинаковых номера ? просто чтобы на моменте создания ошибку ?
+
5. user982172 24.05.18 14:48 Сейчас в теме
оно даже в переменную ничего не заносит
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот