|
Не делается запись в Регистре Сведений(ГрафикиРаботыПоВидамВремени) ЗУП 2,5 | ☑ | ||
---|---|---|---|---|
0
Jupiter
30.10.14
✎
16:26
|
Делаю обработку, которая по графику из файла заполняет соответствующий график в ЗУПе. Но полученная запись регистра не добавляется в регистр?
Код на запись в регистр. Кто-нибудь сталкивался с такой проблемой? НаборЗаписей = РегистрыСведений.ГрафикиРаботыПоВидамВремени.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ГрафикРаботы.Установить(Справ.Ссылка); НаборЗаписей.Отбор.Месяц.Установить(Дата(Стр.Месяц)); НаборЗаписей.Отбор.План.Установить(Истина); НаборЗаписей.Отбор.ВидУчетаВремени.Установить(Перечисления.ВидыУчетаВремени.ПоДням); НаборЗаписей.Отбор.Дата.Установить(Дата(число1)); Запись = НаборЗаписей.Добавить(); Запись.ГрафикРаботы = Справ.Ссылка; Запись.Месяц = Дата(Стр.Месяц); Запись.План = Истина; Запись.ВидУчетаВремени = Перечисления.ВидыУчетаВремени.ПоДням; Запись.Дата = Дата(число1); Если Стр.Режим01 <> "" Тогда Запись.ОсновноеЗначение = 1 Иначе Запись.ОсновноеЗначение = 0 КонецЕсли; Если Стр.Режим01 <> "" Тогда Запись.ДополнительноеЗначение = Стр.Часы01 Иначе Запись.ДополнительноеЗначение = 0 КонецЕсли; СтрокаКаледаря = ПроизводственныйКалендарь.Найти(Дата(число1),"ДатаКалендаря"); Запись.ПроизводственныйКалендарьПятидневка = СтрокаКаледаря.Пятидневка; Если Запись.ПроизводственныйКалендарьПятидневка <> 0 Тогда Запись.ПроизводственныйКалендарьПятидневкаЧасы = 8 Иначе Запись.ПроизводственныйКалендарьПятидневкаЧасы = 0 КонецЕсли; Запись.ПроизводственныйКалендарьШестидневка = СтрокаКаледаря.Шестидневка; Запись.ПроизводственныйКалендарьКалендарныеДни = СтрокаКаледаря.КалендарныеДни; Запись.ОсновноеЗначениеНорма = Запись.ОсновноеЗначение; Запись.ДополнительноеЗначениеНорма = Запись.ДополнительноеЗначение; НаборЗаписей.Записать(Истина); |
|||
1
pessok
30.10.14
✎
16:27
|
все таки сначала надо набор поместить в память, сиречь Прочитать()
|
|||
2
Jupiter
30.10.14
✎
16:50
|
(1) Насколько я понимаю, это не обязательно. Так как меня не интересуют данные которые уже могут быть введены. Я их просто перезаписываю, если они есть.
|
|||
3
Jupiter
30.10.14
✎
17:39
|
вверх
|
|||
4
Euguln
30.10.14
✎
17:42
|
(2) и все же (1)
|
|||
5
Jupiter
30.10.14
✎
17:51
|
Один выдал ошибку, о присутствии записи с такими измерениями. Что делать дальше?
|
|||
6
Jupiter
31.10.14
✎
10:36
|
Дорогие форумчане помогите. Добавил Прочитать, все равно не добавляет запись. Что еще может быть?
|
|||
7
hhhh
31.10.14
✎
10:47
|
что такое
НаборЗаписей.Отбор.Месяц.Установить(Дата(Стр.Месяц)); что там в Стр.Месяц и в число1? |
|||
8
pavig
31.10.14
✎
10:49
|
(5) значит, такие данные уже есть.
Ты либо их замещай полностью по указанному набору измерений, либо как-то обрабатывай. Но, скорее всего, тебе достаточно будет после "Прочитать()" еще указать "Очистить()", чтобы в записываемый набор не попали старые записи. Тут кстати мне становится не совсем понятным - почему вообще требуется его сначала считывать, чтобы потом очищать. Всё же скорее всего не нужно Прочитать, в (2) - прав. Проблема в (0) - в другом. |
|||
9
Jupiter
31.10.14
✎
10:49
|
(7) там 20140101
|
|||
10
pavig
31.10.14
✎
10:50
|
(0) "Но полученная запись регистра не добавляется в регистр"
а на что ругается? Что сообщает? |
|||
11
pavig
31.10.14
✎
10:50
|
может, просто ты в форме списка эту запись не видишь? Заработался, бывает..
|
|||
12
Jupiter
31.10.14
✎
10:51
|
(10) Вообще не ругается. И никаких сообщений. Запись просто не добавляется.
|
|||
13
Jupiter
31.10.14
✎
10:52
|
Я регистр потом просматриваю, там данной записи нет.
|
|||
14
pavig
31.10.14
✎
10:56
|
вот такой код 100% рабочий
НЗ = РегистрыСведений.НумераторСпецификаций.СоздатьНаборЗаписей(); НЗ.Отбор.Договор.Установить(Справочники.Договоры.НайтиПоКоду("000000000073291")); НЗ.Отбор.НомерПриложения.Установить(1); НЗ.Отбор.НомерСпецификации.Установить(2); НЗ.Отбор.НомерДопСоглашения.Установить(3); НС = НЗ.Добавить(); НС.Договор = Справочники.Договоры.НайтиПоКоду("000000000073291"); НС.НомерПриложения = 1; НС.НомерСпецификации = 2; НС.НомерДопСоглашения = 3; НЗ.Записать(); в регистре - четыре измерения, по которым устанавливается отбор. Может у тебя какие-то подписки есть? Пройди отладчиком момент записи. Еще замером произиодительности - увидишь, что еще выполняется после инструкции Записать() |
|||
15
Зеленый пень
31.10.14
✎
10:58
|
(0) см. ПередЗаписью в модуле регистра
|
|||
16
Jupiter
31.10.14
✎
11:01
|
(14) А почему ты ресурсам значения не устанавливаешь или их нет?
(14) (15) Проходился отладчиком, нигде в отказ не уходит. (15) Только там может быть? |
|||
17
pavig
31.10.14
✎
11:05
|
(16) "А почему ты ресурсам значения не устанавливаешь или их нет?" устанавливай какие хочешь, это не важно
"Проходился отладчиком, нигде в отказ не уходит" у тебя не уходит в отказ, у тебя где-то набор записей очищается, либо твой код в чем-то кривой и в (0) - не весь код, нет самого интересного. Попробуй тогда тестово просто выполнить что-то наподобие (14), проверь себя "Только там может быть?" нет, не только там. установи точку останова на "Записать()", нажми "замер производительности", потом F5, потом "отожми" замер производительности, разверни окно, сделай скрин, отправь прямо сюда, посмотрим, что утебя выполняется ПОСЛЕ команды запись набора |
|||
18
pavig
31.10.14
✎
11:11
|
А, еще вариант: попробуй в режиме обмена данными загрузить, может поможет как-то локализовать очищение:
НаборЗаписей.ОбменДанными.Загрузка = Истина; НаборЗаписей.Записать(); |
|||
19
Jupiter
31.10.14
✎
11:15
|
(17) Как добавлять сюда картинки?
|
|||
20
Jupiter
31.10.14
✎
11:19
|
(18) Аналогично. что и без обмена.
|
|||
21
pavig
31.10.14
✎
11:19
|
(19) да просто ссылку на картинку скопируй и отправь
|
|||
22
pavig
31.10.14
✎
11:20
|
а можешь вообще всю обработку отправить и файл загрузки (ну первые 3-4 строки), я на месте посмотрю
|
|||
23
pavig
31.10.14
✎
11:20
|
это лучший вариант
|
|||
24
Jupiter
31.10.14
✎
11:36
|
||||
25
pavig
31.10.14
✎
14:25
|
(24)
а ты отладкой проходил? у тебя скорее всего вот это не проходит: Если Стр.НаименованиеГрафика = Справочники.ГрафикиРаботы.НайтиПоНаименованию(Стр.НаименованиеГрафика).Наименование Тогда то есть нет таких графиков работ, которые ты пытаешься загрузить из файла перепроверь другого больше ничего не вижу |
|||
26
Jupiter
31.10.14
✎
14:43
|
Не в этом проблема. С графиками все хорошо.
Проблема как мне кажется в отборе. Попробовал, через МенеджерЗаписи добавить строку. Получилось. Я думаю либо нужно сразу весь регистр записывать например по измерению Графика, Либо чутка уменьшить до Измерений График, Месяц и ВидУчетаВремени. |
|||
27
Jupiter
31.10.14
✎
14:45
|
Вот только не пойму отбор, сделан чтобы изменить одну запись регистра, а значит должен Действовать как Менеджер.
|
|||
28
pavig
31.10.14
✎
15:07
|
(26), (27)
на моей базе обработка отрабатывает как надо, записи появляются. |
|||
29
Jupiter
31.10.14
✎
15:12
|
(28) спасибо. Буду думать.
|
|||
30
Jupiter
31.10.14
✎
15:32
|
Решил. Оказалась не там искал ошибку. В обработке забыл закрыть Com-объект от этого и проблемы. Всем спасибо, особенно pavig.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |