|
проблема с РС | ☑ | ||
---|---|---|---|---|
0
SH_tan
10.06.15
✎
14:36
|
Добрый день Всем!!!
Вот такая проблема (сразу прошу сильно не пинать так как с РС мало работал) Вообщем сделал РС непереодический и независимый и надо чтобы он по Отбору и в зависимости от того проводим или отмена проведения Прибавлял записи и удалял но что то ни как не получается код ниже НаборЗаписей = РегистрыСведений.Отправка.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Документ.Установить(Ссылка); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество()=0 И РежимЗаписиДокумента.Проведение = РежимЗаписи Тогда // Нет записи НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Документ = Ссылка; НоваяЗапись.Дата = Ссылка.Дата; НоваяЗапись.Отправлено = Ложь; НаборЗаписей.Записать(); ИначеЕсли РежимЗаписиДокумента.ОтменаПроведения = РежимЗаписи Тогда // Есть запись Попытка НоваяЗапись = НаборЗаписей.Добавить(); НаборЗаписей.Записать(); Исключение; ТекстОписаниеОшибки = ОписаниеОшибки(); ПолноеОписаниеОшибки = ТекстОписаниеОшибки; ВызватьИсключение ТекстОписаниеОшибки; КонецПопытки; КонецЕсли; |
|||
1
anatoly
10.06.15
✎
14:37
|
сразу не понял какой смысл делать регистр независимым??
|
|||
2
Heckfy
10.06.15
✎
14:38
|
(1) Ну хз... Может для логов например.....
|
|||
3
SH_tan
10.06.15
✎
14:38
|
и еще как в непереодическом и независимом РС сделать отбор по Ресурсу, в справке написано что нельзя, а надо, как быть?
|
|||
4
butterbean
10.06.15
✎
14:39
|
(0) чтобы очистить записи в наборе нужно вызвать метод Очистить(), а не добавить()
|
|||
5
SH_tan
10.06.15
✎
14:39
|
(1) (2) для того чтобы потом знать какие отправил а какие нет
|
|||
6
butterbean
10.06.15
✎
14:39
|
(3) запросом, но это бред конечно, значит регистр неправильно спроектирован
|
|||
7
SH_tan
10.06.15
✎
14:39
|
(4) хорошо сейчас попробую
|
|||
9
Heckfy
10.06.15
✎
14:41
|
(4) НаборЗаписей = РегистрыСведений.Отправка.СоздатьНаборЗаписей();
НаборЗаписей.Записать() Вообще весь регистр почистит :) |
|||
10
butterbean
10.06.15
✎
14:41
|
(9) да, удобная вещь
|
|||
11
SH_tan
10.06.15
✎
14:42
|
(4) ошибка
Ошибка при выполнении обработчика - 'ПередЗаписью' по причине: Обращение к процедуре объекта как к функции (Очистить) |
|||
12
SH_tan
10.06.15
✎
14:43
|
(8) блин не жгу а помощи ищу
|
|||
13
SH_tan
10.06.15
✎
14:44
|
(8) вообще хочу разобраться почему у меня ошибка возникла в (0)
|
|||
14
SH_tan
10.06.15
✎
14:45
|
(6) тогда какой надо?
|
|||
15
SH_tan
10.06.15
✎
14:50
|
не у кого нет мыслей?
|
|||
16
JesteR
10.06.15
✎
14:51
|
Напиши
Какая структура регистра, где измерения, где ресурсы. |
|||
17
SH_tan
10.06.15
✎
14:52
|
Причем записывает РС нормально без ошибок
|
|||
18
SH_tan
10.06.15
✎
14:53
|
(16)
Измерение Документ(ссылка) Ресурсы Дата (Дата и время) Отправлено (булево) |
|||
19
vicof
10.06.15
✎
14:53
|
(17) Автор, у тебя между ушами каша. Ты даже мысли не можешь сформулировать понятно для окружающих.
|
|||
20
JesteR
10.06.15
✎
14:55
|
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Документ = Ссылка; НоваяЗапись.Дата = Ссылка.Дата; НоваяЗапись.Отправлено = Ложь; НаборЗаписей.Записать(); ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения НаборЗаписей.Записать(); КонецЕсли; как-то так.... |
|||
21
JesteR
10.06.15
✎
14:56
|
(20) Набор.Прочитать() не делай.
|
|||
22
SH_tan
10.06.15
✎
14:56
|
(19) при проведении Документа эта часть кода отрабатывает как надо (при условии что нет такого же регистра сведений по отбору)
НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Документ = Ссылка; НоваяЗапись.Дата = Ссылка.Дата; НоваяЗапись.Отправлено = Ложь; НаборЗаписей.Записать(); |
|||
23
JesteR
10.06.15
✎
14:57
|
Короче вот:
НаборЗаписей = РегистрыСведений.Отправка.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Документ.Установить(Ссылка); Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Документ = Ссылка; НоваяЗапись.Дата = Ссылка.Дата; НоваяЗапись.Отправлено = Ложь; НаборЗаписей.Записать(); ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения НаборЗаписей.Записать(); КонецЕсли; |
|||
24
SH_tan
10.06.15
✎
14:57
|
(21) сейчас попробую
|
|||
25
butterbean
10.06.15
✎
14:57
|
(21) при перепроведении будет хрень
|
|||
26
JesteR
10.06.15
✎
14:57
|
(23)Блин, во втором кейсе забыл ТОГДА
|
|||
27
JesteR
10.06.15
✎
14:58
|
(25)Обоснуй
|
|||
28
SH_tan
10.06.15
✎
15:00
|
(25) при перепроведении он перезаписывается
|
|||
29
SH_tan
10.06.15
✎
15:00
|
(27) но он не отработает условие отбора
НаборЗаписей.Количество()=0 у него всегда 0 |
|||
30
Галахад
гуру
10.06.15
✎
15:02
|
Интересно, а когда Отправлено должно стать Истиной?
|
|||
31
SH_tan
10.06.15
✎
15:02
|
при отмене проведения
Ошибка при выполнении обработчика - 'ПередЗаписью' по причине: {Документ.ПриходнаяНакладная()}: {Документ.ПриходнаяНакладная()}: Обращение к процедуре объекта как к функции (Очистить) |
|||
32
SH_tan
10.06.15
✎
15:03
|
(30) по идее внешняя обработка должна менять
|
|||
33
vicof
10.06.15
✎
15:04
|
(32) Когда пойдет дождь?
По идее я купил шланг |
|||
34
SH_tan
10.06.15
✎
15:05
|
(31) не нормально отменяет, не обновил Конфигуратор, сори
|
|||
35
Галахад
гуру
10.06.15
✎
15:06
|
(34) А если пару раз провести?
|
|||
36
SH_tan
10.06.15
✎
15:08
|
(35) перезаписывает уже имеющийся РС
|
|||
37
SH_tan
10.06.15
✎
15:08
|
(35) это плохо
|
|||
38
lEvGl
гуру
10.06.15
✎
15:09
|
Важно понять условие отправки/не отправки. Когда отправлять а когда нет, считается перепроведение уже проведенного необходимостью отправки или нет. Если речь о приходах, то оприходовали, сообщили о материалах и количестве. Через пол часа кладовщик (или кто там) перебивает количество в документе, вопрос - надо отправить заново? Еще через пол часа перебивает в этом же документе дату документа и проводит, вопрос - надо отправить? и тд условий и вариантов много.
А как почистить регистр или добавить новых записей - вопрос последний. |
|||
39
SH_tan
10.06.15
✎
15:15
|
(38)
отправляется по времени 3 раза 10-00, 12-00, 16-00 обработка должна запросом выбрать те у которых в Ресурсе стоит Отправлено - Ложь и с Периодом 2 дня далее формирует Таблицу и передает ее на почту, при этом должна получить РегСведений и поменять его на Отправлено - Истина то есть кто что там меняет нас не интересует, нам важен факт того что произошло. |
|||
40
SH_tan
10.06.15
✎
15:16
|
(39) Таблицу - это то что пришло
|
|||
41
SH_tan
10.06.15
✎
15:18
|
вообщем вот так подходит
НаборЗаписей = РегистрыСведений.ОтправкаПриходов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Документ.Установить(Ссылка); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество()=0 И РежимЗаписиДокумента.Проведение = РежимЗаписи Тогда // Нет записи НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Документ = Ссылка; НоваяЗапись.Дата = Ссылка.Дата; НоваяЗапись.Отправлено = Ложь; НаборЗаписей.Записать(); ИначеЕсли РежимЗаписиДокумента.ОтменаПроведения = РежимЗаписи Тогда // Есть запись Попытка //НоваяЗапись = НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Исключение; ТекстОписаниеОшибки = ОписаниеОшибки(); ПолноеОписаниеОшибки = "что то не так "+ТекстОписаниеОшибки; ВызватьИсключение ТекстОписаниеОшибки; КонецПопытки; КонецЕсли; |
|||
42
butterbean
10.06.15
✎
15:19
|
(41) но так ведь ничего не очищается
|
|||
43
SH_tan
10.06.15
✎
15:19
|
блин, не подумал если сперва проведут а потом отменять в промежутке времени с 9-00 до 10-00, будут попадать ненужные доки(((
|
|||
44
SH_tan
10.06.15
✎
15:20
|
(42) как сделать на условие
если у имеющегося РС Отправлено = Истина Тогда ненадо отчищать? |
|||
45
floody
10.06.15
✎
15:23
|
вот уж ваистену каша так каша
|
|||
46
butterbean
10.06.15
✎
15:25
|
(44) проверить первую и единственную запись в набор
|
|||
47
SH_tan
10.06.15
✎
15:26
|
(46) Если НаборЗаписей.ЭтотОбъект[0].Отправлено Тогда так?
|
|||
48
SH_tan
10.06.15
✎
15:27
|
(45) если какашка тогда предложи чтобы было не какашка
|
|||
49
vicof
10.06.15
✎
15:28
|
(45) А мне за констатацию этого факта предупреждение влепили. Демократия, блин.
|
|||
50
samozvanec
10.06.15
✎
15:28
|
(44) сделай РС периодическим, док пишет отправлено ЛОЖЬ, обработка пишет ИСТИНА, срезом последних получишь, которые надо отправить.
|
|||
51
samozvanec
10.06.15
✎
15:30
|
(50) к (48)
|
|||
52
SH_tan
10.06.15
✎
15:31
|
(50) попробую так
|
|||
53
SH_tan
10.06.15
✎
15:34
|
(50) В пределах года поставить?
а Использовать отбор по периоду в качестве основного - это ставить или не надо? |
|||
54
samozvanec
10.06.15
✎
15:34
|
(52) если хочешь фокусы, как в (38), пиши Отправлено = Ложь не датой документа, а текущей датой, когда по условию нужно отправить повторно
|
|||
55
samozvanec
10.06.15
✎
15:35
|
(53) в пределах секунды ставь, не ошибешься. ставь.
|
|||
56
SH_tan
10.06.15
✎
15:53
|
(55) при проведении тогда будет много записей с одной и той же приходной накладной, вопрос - зачем?
|
|||
57
SH_tan
10.06.15
✎
15:53
|
(55) так как переодичность 1 сек и период всегда меняется ТекущаяДата()
|
|||
58
samozvanec
10.06.15
✎
16:00
|
(56) а ты не каждый раз пиши, а только когда надо отправить. если ты в принципе хочешь отправлять только 1 раз, пиши датой документа
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |