![]() |
|
"Не удалось записать/провести документ " Бухгалтерия предприятия КОРП 2.0 | ☑ | ||
---|---|---|---|---|
0
JuixyJes
21.08.19
✎
12:48
|
При попытке проведения документа выходит ошибка "Не удалось записать/ провести документ". Что делать?
|
|||
1
piter3
21.08.19
✎
12:49
|
Не за что ничего не смотреть,журналы там всякие
|
|||
2
dezss
21.08.19
✎
12:49
|
Это все, что пишет?
Больше вот вообще ничего? |
|||
3
JuixyJes
21.08.19
✎
12:51
|
(2) Вообще ничего, ну кроме названия документа
|
|||
4
JuixyJes
21.08.19
✎
12:54
|
+(3) пыталась найти через отладчик, никуда не проваливается, ошибки как таковой нет, просто как предупреждение падает
|
|||
5
dezss
21.08.19
✎
12:54
|
(4) в (1) написал...смотри ЖР.
|
|||
6
piter3
21.08.19
✎
12:55
|
||||
7
JuixyJes
21.08.19
✎
13:28
|
(5) Журнал операций пойдет?
|
|||
8
ДенисЧ
21.08.19
✎
13:29
|
(7) Тебе же сказали - ЖР (журнал регистрации). Знакомое слово?
|
|||
9
piter3
21.08.19
✎
13:33
|
(7) не пойдет
|
|||
10
JuixyJes
21.08.19
✎
14:17
|
(8) все, поняла, что журнал регистрации, там нет записей про то что не удалось записать документ
|
|||
11
JuixyJes
21.08.19
✎
14:50
|
+(10) документ даже в процедуру обработки проведения не может попасть, не срабатывает точка останова
|
|||
12
НадюшаЯЯ
21.08.19
✎
14:52
|
(11) перед записью смотрите и форму тоже захватите
|
|||
13
JuixyJes
21.08.19
✎
14:57
|
(12) хотела спросить, а вас за что забанили?
|
|||
14
НадюшаЯЯ
21.08.19
✎
14:59
|
(13) по мнению Волшебника, я как же он выразился "навальная крыса". Ну вообщем такова участь той учетки, не стоит в России даже на сраном формуме выражать свое отношение к власти
|
|||
15
piter3
21.08.19
✎
15:07
|
(14) Я же надеюсь вы назвали не Мисту - сраным форумом?
|
|||
16
НадюшаЯЯ
21.08.19
✎
15:21
|
(15) Каждый пусть сделает выводы сам...
|
|||
17
JuixyJes
21.08.19
✎
15:29
|
(16) свобода слова, что тут скажешь
|
|||
18
НадюшаЯЯ
21.08.19
✎
15:30
|
(17) Лучше промолчим, любой, офф для меня на этом форуме теперь закрыт. Даже тот который будет на новый год.
|
|||
19
JuixyJes
21.08.19
✎
15:31
|
Я разобралась с ошибкой, там эти РИБы, вот.
|
|||
20
JuixyJes
21.08.19
✎
15:32
|
Для доработки дали базу из подразделения, там нельзя дважды записать 1 документ
|
|||
21
JuixyJes
21.08.19
✎
15:32
|
(20) и при повторной записи из-за этого стоял Отказ = Истина;
|
|||
22
JuixyJes
21.08.19
✎
15:35
|
Подскажите теперь мне, пожалуйста. Я делала доработку, создала регистр сведений, в который попадают записи при проведении документа. Как при повторном проведении документа добавить новую запись, если в документе поменялся реквизит хоть один
|
|||
23
НадюшаЯЯ
21.08.19
✎
15:38
|
Различия лучше смотреть перед записью. Там будет отличаться Объект и ссылка, в ссылке еще будут старые записи. Это как раз и будет вашим маяком для создания новой записи при проведении. Но если человек просто запишет документ а потом его проведет, то данный алгоритм не сработает.
|
|||
24
JuixyJes
21.08.19
✎
15:42
|
(23) Я подписку на событие сделала, условие написала, но вот запись новая не создается. Только изменяется запись
|
|||
25
НадюшаЯЯ
21.08.19
✎
15:44
|
А как должно быть, если отменить проведение и заново провести документ?
|
|||
26
Мимохожий Однако
21.08.19
✎
15:46
|
(4) Включи режим отладки на сервере.
|
|||
27
НадюшаЯЯ
21.08.19
✎
15:47
|
(26) Обычное приложение, отладка работает в модулях документов и без включенной отладки на сервере, ее не будет только в общих модулях, где прямо стоит галочка на сервере
|
|||
28
JuixyJes
21.08.19
✎
15:50
|
(27) Так, это я поняла. Тогда подписку на запись сделать нужно, так?
|
|||
29
НадюшаЯЯ
21.08.19
✎
15:51
|
(28) нет надо ответить на вопрос
|
|||
30
JuixyJes
21.08.19
✎
15:54
|
(25) Ну тут понятно, при отмене проведения запись удаляется, потом снова добавляется при проведении
|
|||
31
JuixyJes
21.08.19
✎
15:56
|
И как тогда записи добавлять новые в регистр?
|
|||
32
НадюшаЯЯ
21.08.19
✎
16:06
|
документ будет измен раз десять, сколько записей будет в регистре? Потом отмена проведения, потом проведение - сколько записей?
|
|||
33
JuixyJes
21.08.19
✎
16:09
|
При отмене проведения записи движений удалятся, при проведении останется одна. Но как тогда реализовать добавление записей? Просто нужно каждое изменение 1 реквизита в документе заносить в РС, потом по этому РС сделать отчет.
|
|||
34
НадюшаЯЯ
21.08.19
✎
16:12
|
Нужно запросом в момент проведения, до записи в регистр вытащить текущие записи и их тоже использовать при записи
|
|||
35
JuixyJes
21.08.19
✎
16:20
|
(34) хммм, я вот не подумала, а ведь будет ругаться на то что запись с такими полями уже есть
|
|||
36
JuixyJes
21.08.19
✎
16:22
|
Процедура ПП_КОЖОбработкаПроведения(Источник, Отказ) Экспорт
Регистр = Источник.Движения.ПП_КОЖ; Регистр.Записывать = Истина; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПП_КОЖ.Регистратор, | ПП_КОЖ.Дата, | ПП_КОЖ.НомерДоговора, | ПП_КОЖ.Заемщик, | ПП_КОЖ.Менеджер, | ПП_КОЖ.Сумма |ИЗ | РегистрСведений.ПП_КОЖ КАК ПП_КОЖ"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если РезультатЗапроса.Пустой() Тогда Движение = Регистр.Добавить(); Движение.Период = Источник.Дата; Движение.Дата = Источник.Дата; Движение.НомерДоговора = Источник.Номер; Движение.Заемщик = Источник.Клиент; Движение.Менеджер = Источник.Сотрудник; Движение.Сумма = Источник.СуммаКредита; Иначе Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = Регистр.Добавить(); Движение.Период = ВыборкаДетальныеЗаписи.Дата; Движение.Дата = ВыборкаДетальныеЗаписи.Дата; Движение.НомерДоговора = ВыборкаДетальныеЗаписи.НомерДоговора; Движение.Заемщик = ВыборкаДетальныеЗаписи.Заемщик; Движение.Менеджер = ВыборкаДетальныеЗаписи.Менеджер; Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма; Если ВыборкаДетальныеЗаписи.НомерДоговора = Источник.Номер и ВыборкаДетальныеЗаписи.Сумма <> Источник.СуммаКредита Тогда Движение = Регистр.Добавить(); Движение.Период = Источник.Дата; Движение.Дата = Источник.Дата; Движение.НомерДоговора = Источник.Номер; Движение.Заемщик = Источник.Клиент; Движение.Менеджер = Источник.Сотрудник; Движение.Сумма = Источник.СуммаКредита; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
37
JuixyJes
21.08.19
✎
16:22
|
Вот такая у меня подписка на событие
|
|||
38
JuixyJes
21.08.19
✎
16:24
|
Я так полагаю, то что зависит от регистратора мне и мешает, да? и что записи в регистр нужно делать через менеджер записи
|
|||
39
ДенисЧ
21.08.19
✎
16:25
|
Сделай этот РС независимым, тогда из него движения не будут удаляться при отмене
|
|||
40
JuixyJes
21.08.19
✎
16:28
|
(39) сделала независимым, записывать движения теперь через менеджер записи да?
|
|||
41
ДенисЧ
21.08.19
✎
16:29
|
(40) Можешь через менеджер, можешь через набор записей...
|
|||
42
НадюшаЯЯ
21.08.19
✎
16:32
|
(40) Как выяснилось, что менеджер записи надстойка над набором записи, тогда в любом случае через набор
|
|||
43
JuixyJes
21.08.19
✎
16:37
|
Процедура ПП_КОЖОбработкаПроведения(Источник, Отказ) Экспорт
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПП_КОЖ.Дата, | ПП_КОЖ.НомерДоговора, | ПП_КОЖ.Заемщик, | ПП_КОЖ.Менеджер, | ПП_КОЖ.Сумма |ИЗ | РегистрСведений.ПП_КОЖ КАК ПП_КОЖ"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если РезультатЗапроса.Пустой() Тогда Движение = РегистрыСведений.ПП_КОЖ.СоздатьМенеджерЗаписи(); Движение.Период = Источник.Дата; Движение.Дата = Источник.Дата; Движение.НомерДоговора = Источник.Номер; Движение.Заемщик = Источник.Клиент; Движение.Менеджер = Источник.Сотрудник; Движение.Сумма = Источник.СуммаКредита; Движение.Записать(); Иначе Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.НомерДоговора = Источник.Номер и ВыборкаДетальныеЗаписи.Сумма <> Источник.СуммаКредита Тогда Движение = РегистрыСведений.ПП_КОЖ.СоздатьМенеджерЗаписи(); Движение.Период = Источник.Дата; Движение.Дата = Источник.Дата; Движение.НомерДоговора = Источник.Номер; Движение.Заемщик = Источник.Клиент; Движение.Менеджер = Источник.Сотрудник; Движение.Сумма = Источник.СуммаКредита; Движение.Записать(); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
44
JuixyJes
21.08.19
✎
16:39
|
Сделала так, но при попытке сделать так Движение.Записать(Ложь); выдает ошибку что запись с такими ключевыми полями уже существует.
|
|||
45
dezss
21.08.19
✎
16:40
|
(18) Ну вот зря ты так. Бывает такое)
(42) И да и нет. :) В общем, все сложно) (43) А где в запросе отбор по этому документу? Я бы посоветовал любую подобную запись оборачивать в Попытку-Исключение. Движение.Записать(); Вот из-за этого условия при наличии хотя бы 2-х записей по этому источнику, всегда будет происходить запись в регистр. Надо делать регистр периодическим и добавлять срезпоследних в запросе. Если ВыборкаДетальныеЗаписи.НомерДоговора = Источник.Номер и ВыборкаДетальныеЗаписи.Сумма <> Источник.СуммаКредита Тогда |
|||
46
dezss
21.08.19
✎
16:41
|
(44) Показывай структуру регистра.
|
|||
47
JuixyJes
21.08.19
✎
16:43
|
||||
48
dezss
21.08.19
✎
16:45
|
(43)
Если регистр не переодический, то эта строка бессмысленна: Движение.Период = Источник.Дата; Если периодический, то писать туда надо не дату документа. (47) Ужас) Регистр обязательно должен содержать набор измерений. Без них он не может существовать. |
|||
49
piter3
21.08.19
✎
16:46
|
(47)А чего сумма реквизит-то
|
|||
50
dezss
21.08.19
✎
16:46
|
(49) То есть то, что там вообще нет измерений, не важно?)))
|
|||
51
hhhh
21.08.19
✎
16:47
|
(47) почему измерений нет? в регистре может быть только одна запись для каждой комбинации измерений.
|
|||
52
piter3
21.08.19
✎
16:48
|
(50)я на сумму глянул и закрыл,дабы не расстраиваться
|
|||
53
dezss
21.08.19
✎
16:51
|
В общем, добавляй в регистр измерение, в которое будешь пихать сам документ, и делай его периодическим. В период пихай не дату документа, а текущую дату-время. Вот и будет у тебя сколько угодно записей по 1 документу. Остальное, в принципе, можно не менять.
|
|||
54
dezss
21.08.19
✎
16:52
|
(53) + но в запросе все-таки установи отбор по этому документу (который как раз будет в измерении) и сделай срезпоследних, чтоб только последняя запись проверялась.
|
|||
55
JuixyJes
22.08.19
✎
09:57
|
(54) вот такой совет, это фактически готовое решение, благодарю, решение помогло. Остался лишь маленький вопрос. мне нужно запросом вытянуть все повторяющиеся записи из этого регистра, сделала вот так, результат запрос 0 строк
ВЫБРАТЬ ПП_КОЖ.НомерДоговора, ПП_КОЖ.Сумма, ПП_КОЖ.Менеджер, ПП_КОЖ.Заемщик, КОЛИЧЕСТВО(ПП_КОЖ.НомерДоговора) КАК Количество ИЗ РегистрСведений.ПП_КОЖ КАК ПП_КОЖ СГРУППИРОВАТЬ ПО ПП_КОЖ.НомерДоговора, ПП_КОЖ.Сумма, ПП_КОЖ.Менеджер, ПП_КОЖ.Заемщик ИМЕЮЩИЕ КОЛИЧЕСТВО(ПП_КОЖ.НомерДоговора) = 1 |
|||
56
dezss
22.08.19
✎
14:17
|
(55) Делай так. Просто у тебя ж суммы каждый раз разные будут, вроде, поэтому группируем по уникальному сочетанию полей для твоей выборки. надеюсь, что номера хватит. Но можешь еще и дату добавить.
ВЫБРАТЬ ПП_КОЖ.НомерДоговора, КОЛИЧЕСТВО(ПП_КОЖ.НомерДоговора) КАК Количество ИЗ РегистрСведений.ПП_КОЖ КАК ПП_КОЖ СГРУППИРОВАТЬ ПО ПП_КОЖ.НомерДоговора, ИМЕЮЩИЕ КОЛИЧЕСТВО(ПП_КОЖ.НомерДоговора) = 1 |
|||
57
hhhh
22.08.19
✎
14:24
|
(55) повторяющиеся наверно когда > 1, а не = 1 ?
|
|||
58
dezss
22.08.19
✎
15:33
|
(57) точно...не обратил внимания)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |