|   |   | 
| 
 | проблема с РС | ☑ | ||
|---|---|---|---|---|
| 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 раз, пиши датой документа     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |