|
БП 3.0: Ведомость на выплату ЗП (программное создание) | ☑ | ||
---|---|---|---|---|
0
dft2014
03.07.14
✎
12:12
|
БП 3.0, платформа 8.2 (УФ)
Пытаюсь программно создать док-т "Ведомость на выплату зарплаты", выдает ошибку при записи: "Дате по объекту соответствует запрет изменения данных для всех пользователей по 31.05.2014 (установлена общая дата запрета)." Изначально, есть Эксель-файл, с него считываю данные на форму обработки. Далее на форме есть кнопка с командой "СоздатьВедомость". Вот ее код: &НаСервере Процедура СоздатьВедомость() Ведомость = Документы.ВедомостьНаВыплатуЗарплаты.СоздатьДокумент(); Ведомость.Организация = Объект.Организация; Ведомость.ВидМестаВыплаты = Перечисления.ВидыМестВыплатыЗарплаты.ЗарплатныйПроект; Ведомость.Дата = ТекущаяДата(); Ведомость.Комментарий = "Загружено из Excel-файла " + ТекущаяДата(); ТЧВедомость = Ведомость.Зарплата; Для каждого Стр Из Объект.Сотрудники Цикл НоваяСтрокаТЧ = ТЧВедомость.Добавить(); НоваяСтрокаТЧ.ФизическоеЛицо = Стр.ФизЛицо; НоваяСтрокаТЧ.Сумма = Стр.Сумма; КонецЦикла; Попытка Ведомость.Записать(); Исключение Сообщить("Ошибка при записи документа!!!"); КонецПопытки; КонецПроцедуры В конфигураторе так и не разобралась, как в этом док-те присваивается код и номер в при создании документа "Ведомость на выплату зарплаты": на форме и в модуле всего пара-тройка процедур, но какая отвечает за присвоение номера и даты - не разобралась! Вероятно из-за этого и ошибка выходит. Подскажите пож-та, в УФ все так запутали и спрятали, что раньше было доступно. |
|||
1
Kamas
03.07.14
✎
12:14
|
(0) "Дате по объекту соответствует запрет изменения данных для всех пользователей по 31.05.2014 (установлена общая дата запрета)." -говорит что стоит дата запрета и вестимо дата документа меньше этой даты
|
|||
2
dft2014
03.07.14
✎
12:15
|
(1) Дата запрета у нас действительно стоит 31.05.2014, но я создаю документ текущей датой - 03.07.2014. Но мне кажется, что проблема не в этом, а в том, что в УФ надо как-то по-хитрому присваивать дату в док-те "Ведомость на выплату зарплаты". Обычный код:
Ведомость.Дата = ТекущаяДата(); не проходит... |
|||
3
Kamas
03.07.14
✎
12:18
|
(2) еще как проходит обычно
|
|||
4
dft2014
03.07.14
✎
12:22
|
(3) В других док-тах проходит, а именно в этом - нет. В док-те "Ведомость на выплату зарплаты" в модулях всего несколько строк, но про присвоение номера и даты - не нашла где.
Помогите!!! |
|||
5
anatoly
03.07.14
✎
12:26
|
в Исключение вставить еще вывод даты документа - а потом думать почему она такая
|
|||
6
dft2014
03.07.14
✎
12:36
|
(5) Добавила:
Попытка Ведомость.Записать(); // Ведомость.Записать(РежимЗаписиДокумента.Проведение); Исключение Сообщить("Ошибка при проведении!!! " + Ведомость.Дата); КонецПопытки; Выдает 03.07.2014. Т.е. дату присваивает правильную, больше чем дата запрета! В чем тогда еще может быть причина??? |
|||
7
dft2014
03.07.14
✎
13:46
|
Ап!
|
|||
8
dft2014
03.07.14
✎
15:05
|
Вроде нашла причину - дело не в дате, а в том, что программно не прописала реквизит "ПериодРегистрации" (в пользовательском режиме он называется "Месяц начисления"), вот он на форме: http://s020.radikal.ru/i706/1407/96/97d7532c2c94.jpg
Ошибку эту нашла, прописав: Попытка Ведомость.Записать(); Исключение Сообщить("Ошибка при проведении!!! " + Ведомость.Дата + " --- " + Ведомость.ПериодРегистрации); КонецПопытки; И он выдал Ошибка при проведении 03.07.2014 --- 01.01.0001 0.00.00 Т.е. пустой период, из-за этого и не записывается!!! Подскажите, как его прописать. Не могу никак разобраться в дебрях этого док-та!!! |
|||
9
anatoly
03.07.14
✎
15:08
|
присвоить значение также как Дате.
ну может в НачалоМесяца() еще |
|||
10
piter3
03.07.14
✎
15:09
|
Ведомость.ПериодРегистрации
|
|||
11
dft2014
03.07.14
✎
15:13
|
(10) Это понятно, что это Ведомость.ПериодРегистрации. Но там вызывается Процедура "ЗаполнитьМесяцПоДате", которая заполняет дату как месяц. На фото в (8) это видно. Как ее использовать в моей внешней обработке?
|
|||
12
piter3
03.07.14
✎
15:15
|
а что нельзя Ведомость.ПериодРегистрации=НачалоМесяца(дата)
|
|||
13
piter3
03.07.14
✎
15:21
|
просто попробуйте,а потом балуйтесь Процедура "ЗаполнитьМесяцПоДате",
|
|||
14
dft2014
03.07.14
✎
15:21
|
(12) Не срабатывает...
Написала: Ведомость.ПериодРегистрации = Месяц(ТекущаяДата()); тоже не срабатывает... |
|||
15
piter3
03.07.14
✎
15:22
|
(14) да вбейте блин Ведомость.ПериодРегистрации=НачалоМесяца(дата).
если сп не читаете сделайте чего говорят |
|||
16
dft2014
03.07.14
✎
15:25
|
(15) Я же уже ответила в (14), что: Ведомость.ПериодРегистрации=НачалоМесяца(ТекущаяДата());
не срабатывает. |
|||
17
dft2014
03.07.14
✎
15:35
|
В типовом механизме, в модуле формы, в процедуре ПриСозданииНаСервере(Отказ, СтандартнаяОбработка), прописано:
Если Параметры.Ключ.Пустая() Тогда // создается новый документ ЗначенияДляЗаполнения = Новый Структура("ПредыдущийМесяц, Ответственный", "Объект.ПериодРегистрации", "Объект.Ответственный"); ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения); ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ЭтаФорма, "Объект.ПериодРегистрации", "МесяцНачисленияСтрокой"); КонецЕсли; Как мне этот код по заполнению Периода, запихнуть в мою обработку??? |
|||
18
MrStomak
03.07.14
✎
15:35
|
(16) Значит, проблема не в этом реквизите. Но его всё равно нужно заполнять.
|
|||
19
MrStomak
03.07.14
✎
15:36
|
(17) Это всё байда для того чтобы периодрегистрации красиво показывать. Ты же не форму программно создаёшь, а сам документ, поэтому это не важно.
|
|||
20
MrStomak
03.07.14
✎
15:37
|
Написала:
Ведомость.ПериодРегистрации = Месяц(ТекущаяДата()); тоже не срабатывает... 15) Я же уже ответила в (14), что: Ведомость.ПериодРегистрации=НачалоМесяца(ТекущаяДата()); не срабатывает. Так ты как написала? первый вариант - неверен. |
|||
21
pavelul73
03.07.14
✎
15:43
|
может все же не в этом реевизите дело?
Попробуйте Попытка док.записать(); Исключение сообщить(ОписаниеОшибки()); КонецПопытки |
|||
22
dft2014
03.07.14
✎
15:43
|
(20) Я написала:
Ведомость.ПериодРегистрации = НачалоМесяца(ТекущаяДата()); |
|||
23
anatoly
03.07.14
✎
15:44
|
какой тип у этого реквизита ПериодРегистрации ?
|
|||
24
piter3
03.07.14
✎
15:45
|
(23)дата
|
|||
25
piter3
03.07.14
✎
15:45
|
(22)и?
|
|||
26
dft2014
03.07.14
✎
15:50
|
(23) Дата
|
|||
27
dft2014
03.07.14
✎
15:51
|
Написала:
Процедура СохранитьВедомость() Ведомость = Документы.ВедомостьНаВыплатуЗарплаты.СоздатьДокумент(); Ведомость.Организация = Объект.Организация; Ведомость.ВидМестаВыплаты = Перечисления.ВидыМестВыплатыЗарплаты.ЗарплатныйПроект; Ведомость.ПериодРегистрации = НачалоМесяца(ТекущаяДата()); // добавила Сообщить("*** " + Ведомость.ПериодРегистрации); Ведомость.Дата = ТекущаяДата(); Ведомость.Комментарий = "Загружено из Excel-файла " + ТекущаяДата(); ТЧВедомость = Ведомость.Зарплата; Для каждого Стр Из Объект.Сотрудники Цикл НоваяСтрокаТЧ = ТЧВедомость.Добавить(); НоваяСтрокаТЧ.ФизическоеЛицо = Стр.ФизЛицо; НоваяСтрокаТЧ.Сумма = Стр.Сумма; КонецЦикла; Попытка Ведомость.Записать(); Исключение Сообщить(ОписаниеОшибки()); Сообщить("Ошибка при проведении!!! " + Ведомость.Дата + " --- " + Ведомость.ПериодРегистрации); КонецПопытки; КонецПроцедуры Ошибки не выдает, но и сообщений никаких не выдает. Документ тоже не создает... |
|||
28
MrStomak
03.07.14
✎
15:53
|
(27) Если ничего не выдаёт, значит всё создаёт, ты просто не там смотришь, не обновляешь или еще чего.
|
|||
29
Borteg
03.07.14
✎
15:54
|
Поможет после всего напиши
Сообщение = Новый СообщениеПользователю(); Сообщение.текст = Ведомость.Ссылка; Сообщение.установитьДанные(Ведомость.Ссылка.получитьОбъект()); Сообщение.сообщить(); В появившемся сообщение ткни на ссылку и передет в этот документ |
|||
30
Borteg
03.07.14
✎
15:56
|
а так вообще в тройке много разных ведомостей, для внешних ведомостей и для ведомостей бухи разные ведомости, так что скорее всего просто не туда смотрим
|
|||
31
Borteg
03.07.14
✎
15:57
|
Сообщение = Новый СообщениеПользователю();
Сообщение.текст = Ведомость.Ссылка; Сообщение.установитьДанные(Ведомость); Сообщение.сообщить(); вот так лучше не заметил что там создание |
|||
32
dft2014
03.07.14
✎
16:03
|
Я в шоке от УФ!!! Все это время ведомости - создавались, после того как строчку написала: Ведомость.ПериодРегистрации=НачалоМесяца(ТекущаяДата());
!!!!! Они в общем журнале не отображались: кнопки обновить в нем нет, поэтому я думала, что увижу вновь созданные ведомости. Он у меня все время открытым был... Нет слов... Всем СПАСИБО!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |