|
Не производится запись в регистр накопления | ☑ | ||
---|---|---|---|---|
0
Yukki
28.05.21
✎
12:10
|
Нужна помощь, не понимаю почему все записи записываются в регистр накопления "ОборотыПоРасходамВнеЗарплаты"
А нужно чтобы данные записывались в регистр "РасходыСубсидий" , а когда заканчивались деньги из субсидии и сотрудники платили свои деньги,то это бы записывалось в "ОборотыПоРасходамВнеЗарплаты" Помогите пожалуйста) Процедура ОбработкаПроведения(Отказ, Режим) Движения.РасходыСубсидий.Записать(); Движения.ОборотыПоРасходамВнеСубсидий.Записать(); //Получение времени покупки еды в столовой МоментВремениДокумента=Ссылка.Дата; Сообщить("Питание в столовой в "+ Час(МоментВремениДокумента)+ ":"+Минута(МоментВремениДокумента)); //Проверка времени покупки еды в столовой Если Час(МоментВремениДокумента)<12 ИЛИ Час(МоментВремениДокумента)>= 13 тогда // регистр ОборотыПоРасходамВнеСубсидий Движения.ОборотыПоРасходамВнеСубсидий.Записывать = Истина; Движение = Движения.ОборотыПоРасходамВнеСубсидий.Добавить(); Движение.Период = Дата; Движение.Сотрудник = Сотрудник; Движение.Сумма = Сумма; Иначе //регистр РасходыСубсидий Движения.РасходыСубсидий.Записывать = Истина; Движение = Движения.РасходыСубсидий.Добавить(); Движение.Период = Дата; Движение.Сотрудник = Сотрудник; Движение.Сумма = Сумма; // получение начисленной субсидии ученику отбор=новый структура("Сотрудник",Сотрудник); СубсидияСотрудника = РегистрыСведений.Субсидии.ПолучитьПоследнее(Дата, отбор); Сообщить("Сотруднику в этом месяце была назначена субсидия " +СубсидияСотрудника.РазмерСубсидии + " руб."); //Получение данных об истраченной сумме субсидий за месяц Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | док.Сотрудник КАК Сотрудник, | док.Сумма КАК Сумма, | ЕСТЬNULL(траты.СуммаОборот,0) КАК СуммаОборот |ИЗ | Документ.ПитаниеВСтоловой КАК док | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасходыСубсидий.Обороты(&НачПериод,&КонПериод,,Сотрудник =&Сотрудник) КАК траты | ПО док.Сотрудник = траты.Сотрудник |ГДЕ | док.Ссылка = &ссылка"; Запрос.УстановитьПараметр("ссылка", ссылка); Запрос.УстановитьПараметр("НачПериод", НачалоМесяца(ссылка.Дата)); Запрос.УстановитьПараметр("КонПериод", КонецМесяца(ссылка.Дата)); Запрос.УстановитьПараметр("Сотрудник", Сотрудник); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл сообщить("Этот сотрудник уже потратил из субсидии " + выборкаДетальныеЗаписи.СуммаОборот + " руб."); Траты=выборкадетальныеЗаписи.сумма+выборкаДетальныеЗаписи.СуммаОборот; //сообщить(Траты); разница=Траты-СубсидияСотрудника.РазмерСубсидии ; //Проверка хватит ли оставшишся средств субсидии на текущую покупку Если разница>0 тогда Сообщить("Превышен лимит субсидии на " + разница + " руб."); МожноПотратить= СубсидияСотрудника.РазмерСубсидии-выборкаДетальныеЗаписи.СуммаОборот; Сообщить("Можно потратить " + Можнопотратить+ " руб."+ "Необходимо доплатить "+ разница+ " руб."); Движения.РасходыСубсидий.Записать(Ложь); // запись движений документа в один или разные регистры в зависимости от остаточной суммы субсидии Если МожноПотратить<>0 тогда Движения.РасходыСубсидий.Записывать = Истина; Движение = Движения.РасходыСубсидий.Добавить(); Движение.Период = Дата; Движение.Сотрудник = Сотрудник; Движение.Сумма = МожноПотратить; КонецЕсли; Движения.ОборотыПоРасходамВнеСубсидий.Записывать = Истина; Движение = Движения.ОборотыПоРасходамВнеСубсидий.Добавить(); Движение.Период = Дата; Движение.Сотрудник = Сотрудник; Движение.Сумма = разница; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
1
brainguard
28.05.21
✎
12:13
|
(0) В тексте нет такого регистра ОборотыПоРасходамВнеЗарплаты
|
|||
2
Yukki
28.05.21
✎
12:22
|
(1) Это я не правильно выразилась, он есть, но называется "ОборотыПоРасходамВнеСубсидий"
|
|||
3
mistеr
28.05.21
✎
12:57
|
(0) Какая конфа?
Помнится, я это штатными механизмами делал. |
|||
4
ДенисЧ
28.05.21
✎
13:03
|
А что, в регистре накопления регистратор уже не модно указывать?
|
|||
5
mistеr
28.05.21
✎
13:10
|
(4) Оно само
|
|||
6
ДенисЧ
28.05.21
✎
13:16
|
(5) Сами только кошки и блохи заводятся
|
|||
7
mikecool
28.05.21
✎
13:17
|
(6) про кошек подтверждаю
|
|||
8
Yukki
28.05.21
✎
13:26
|
(4) Там все указано
|
|||
9
acht
28.05.21
✎
13:34
|
(8) При каких условиях в коде выполняется строка
Движение = Движения.РасходыСубсидий.Добавить(); ? |
|||
10
ДенисЧ
28.05.21
✎
13:48
|
(8)
Движение = Движения.ОборотыПоРасходамВнеСубсидий.Добавить(); Движение.Период = Дата; Движение.Сотрудник = Сотрудник; Движение.Сумма = разница; Можно пальцем ткнуть? |
|||
11
mistеr
28.05.21
✎
14:05
|
(10) Ты видать привык чужие движения курочить. :)
При проведении отбор уже стоит и регистратор заполняется автоматически. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |