|
Удаление строки табличной части документа корректировка записей регистров | ☑ | ||
---|---|---|---|---|
0
pesol
28.04.22
✎
13:30
|
Получаю ссылки на документы "корректировка записей регистров", содержащие записи по разным регистрам сведений и накопления по основному средству. Не могу понять, как удалить из документов записи только по определённому основному средству.
Если СокрЛП(ТипЗнч(Значение)) = "Корректировка записей регистров" Тогда Форма = ЭтотОбъект.ПолучитьФорму(); ТекЗначениеПоиска = Форма.ЭлементыФормы.ЗначениеПоиска.Значение; ОбъектДок = Значение.ПолучитьОбъект(); СтруктураДляПоиска = Новый Структура("ОсновноеСредство", ТекЗначениеПоиска); ТаблицаРегистровСведенийДок = ОбъектДок.ТаблицаРегистровСведений; //Получаем список строк соответсвтвующих отбору, и перебором удаляем. МассивПустыхСтрок = ТаблицаРегистровСведенийДок.НайтиСтроки(СтруктураДляПоиска); Для Каждого Строка Из МассивПустыхСтрок Цикл ТаблицаРегистровСведенийДок.Удалить(Строка); КонецЦикла; ОбъектДок.Записать(); ТаблицаРегистровНакопленияДок = ОбъектДок.ТаблицаРегистровНакопления; //Получаем список строк соответсвтвующих отбору, и перебором удаляем. МассивПустыхСтрок = ТаблицаРегистровНакопленияДок.НайтиСтроки(СтруктураДляПоиска); Для Каждого Строка Из МассивПустыхСтрок Цикл ТаблицаРегистровНакопленияДок.Удалить(Строка); КонецЦикла; ОбъектДок.Записать(); Иначе Значение.ПолучитьОбъект().УстановитьПометкуУдаления(Истина); КонецЕсли; Помогите разобраться) |
|||
1
Михаил Козлов
28.04.22
✎
13:52
|
В документе нет ТЧ.
|
|||
2
shuhard
28.04.22
✎
13:53
|
(1) +1
|
|||
3
Михаил Козлов
28.04.22
✎
13:53
|
Виноват: невнимательно прочитал.
|
|||
4
vicof
28.04.22
✎
13:54
|
В документе нет ТЧ.
Не виноват) |
|||
5
Михаил Козлов
28.04.22
✎
13:57
|
Нужно взять коллекцию движений с менять наборы записей.
|
|||
6
hhhh
28.04.22
✎
13:58
|
(0) вам надо удалять не из документа, а из движений этого документа. В самом документе ничего нет. Таблица регистров - это просто названия регистров, там никаких основных средств нет.
|
|||
7
Индиго
28.04.22
✎
14:23
|
(1)Есть:-) там лежат названия регистров
|
|||
8
pesol
28.04.22
✎
18:35
|
Пытался найти в интернете пример работы с данным документом, не нашёл. Вопросы подобные люди задают, но ответа никто дать не может)
В этом документе есть 4 табличные части. Но я почему-то не могу получить их содержимое, видимо сначала надо получить наименование регистра сведений, потом уже всё остальное. Имя регистра я без проблем вижу, но что с ним делать дальше никак не пойму) Может кто на примере подскажет, кто может сталкивался с такой задачей.. |
|||
9
Ёпрст
28.04.22
✎
18:38
|
(8) взять нужный РС, создать набор записей, установить отбор на нужные измерения, записать этот отбор.
Наслаждаться, кушать печеньки |
|||
10
pesol
28.04.22
✎
18:51
|
(9) можно какой-то простой пример?
|
|||
11
azernot
28.04.22
✎
18:54
|
Набор = РегистрыСведений.СвденияОбОсновныхСредствах.СоздатьНаборЗаписей();
Hабор.Отбор.Регистратор.Установить(СсылкаНаКорректировкуЗаписейРегистров); Набор.Прочитать(); Для Индекс = 1 - Набор.Количество() По 0 Цикл Запись = Набор[- Индекс]; Если Запись.ОсновноеСредство = НужноеМнеОсновноеСредство Тогда Набор.Удалить(- Индекс); КонецЕсли; КонецЦикла; Набор.Записать(); |
|||
12
pesol
28.04.22
✎
19:02
|
(11) Благодарствую! Завтра попробую, отпишусь)
|
|||
13
Михаил Козлов
28.04.22
✎
19:03
|
(8) Нет в нем табличных частей. Вы в конфигуратор заглядывали?
|
|||
14
pesol
28.04.22
✎
19:13
|
(13) Извиняюсь, не уточнил:
|
|||
15
pesol
28.04.22
✎
19:13
|
Бухгалтерия государственного учреждения, редакция 1.0 (1.0.72.5)
КорректировкаЗаписейРегистров: Табличные части: ТаблицаРегистровНакопления ТаблицаРегистровСведений ТаблицаРегистровБухгалтерии ЗаполнениеДвижений |
|||
16
Михаил Козлов
28.04.22
✎
19:57
|
(15) Может в ТаблицаРегистров... - списки метаданных? Посмотрите запросом, что в них.
|
|||
17
ДедМорроз
28.04.22
✎
20:39
|
Так в этом документе данные не хранятся - они в движениях по регистрам,а в таблицах просто пишется в какие регистры смотреть.
Соответственно,отобрать записи нужного регистра по регистратору и удалить из этого набора нужные (точнее ненужные) записи,потом записать набор. |
|||
18
lEvGl
гуру
29.04.22
✎
07:05
|
если правильно помню - Документ.ДвиженияНужногоРегистра.Удалить(НужнаяЗапись), Документ.ДвиженияНужногоРегистра.Записать() должно помочь. На форме эта запись тоже должна исчезнуть, там не тч, а менеджер движений визуализирован, по кнопке происходит Движения.Записать(), при открытии Движения.Прочитать(). В сказанном могут быть неточности)
|
|||
19
lEvGl
гуру
29.04.22
✎
07:09
|
кстати грамотный документ, универсальный
|
|||
20
Serg_1960
29.04.22
✎
08:36
|
||||
21
pesol
04.05.22
✎
02:19
|
Так ничего и не получилось( Может кто-то возьмётся сделать за оплату?
|
|||
22
Мимохожий Однако
04.05.22
✎
06:48
|
Рассказывай, что делал...Удочка лучше рыбы.
|
|||
23
Йохохо
04.05.22
✎
07:20
|
(22) жена может захотеть стать владычицей морскою
|
|||
24
Serg_1960
04.05.22
✎
08:21
|
(21) "Вопросы подобные люди задают, но ответа никто дать не может"(8) - "Чтобы правильно задать вопрос, нужно знать большую часть ответа". Вам уже ответили и даже простой пример привели... но Вы этого ещё не поняли :(
|
|||
25
hhhh
04.05.22
✎
09:48
|
(21) всё-таки вам надо уточнить задачу. Если это реально универсальная обработка планируется, которая обходит все регистры, и даже регистр бухгалтерии, где поиск будет по счетам и субконто, и название реквизита, в котором искать заранее неизвестно, вы и в 50 тысяч не уложитесь.
|
|||
26
pesol
04.05.22
✎
10:48
|
Вот похожая обработка https://infostart.ru/public/1482475/ но она не делает то, что нужно
Конфигурация БГУ 1.0 После свёртки базы сформировались документы "Корректировка записей регистров". Там хранятся данные по основным средствам, которых уже нет ни на балансе ни на забалансе. Для упрощения задачи я взял обработку вот эту https://infostart.ru/public/86827/ она прекрасно находит нужные ссылки, но не удаляет нужные строки из документа "Корректировка записей регистров", а помечает на удаление весь документ. Вот мне и надо по ссылке на основное средство почистить данные во всех документах "Корректировка записей регистров". Там ссылки в основном на регистры сведений, и иногда на регистры накопления. Последние я готов даже вручную почистить, их немного) |
|||
27
pesol
04.05.22
✎
10:57
|
как я представляю выполнение задачи:
дописать обработку https://infostart.ru/public/86827/ если ссылка документ "Корректировка записей регистров", то получить список "состава регистров". По выбранному списку пройтись по метаданным регистра. Если "измерение" - элемент справочника "основные средства", то по значению реквизита найти строку/строки с искомым основным средством, и удалить её. Документ записать. |
|||
28
hhhh
04.05.22
✎
11:00
|
(27) не получается скачать. наверно, вы над нами издеваетесь, подсовываете ссылки на платные обработки.Обратитесь там к авторам, они вам помогут.
|
|||
29
pesol
04.05.22
✎
11:37
|
я привожу пример) Кстати, на счёт обращения к авторам - это мысль) Попробую)
|
|||
30
Kassern
04.05.22
✎
11:42
|
(0) Блин вы серьезно?
В отладке пробовали открывать документ, смотреть где движения хранятся, а где перечень используемых регистров? У вас какая конфа? Скорее всего сами движения хранятся в одноименной таблице. А в ТаблицаРегистровСведений скорее всего имена таблиц используемых для движений. |
|||
31
pesol
04.05.22
✎
11:46
|
(30) конечно пробовал) Но не пойму, как работать с этим "хитрым" документом)
|
|||
32
Kassern
04.05.22
✎
11:49
|
(31) Раз пробовали, тогда расскажите нам в какой таблице хранятся движения данного документа, где там ваши ОС?
|
|||
33
pesol
04.05.22
✎
11:54
|
(32) в том и проблема, что видимо не в таблице. Советовали через Движения редактировать данные, но я тоже не пойму, как там с ними работать) Писал когда-то на 7-ке, но тут совсем всё по-другому) Ничего не могу понять. Думаю, человеку понимающему час/два делов, а то и меньше))
|
|||
34
Kassern
04.05.22
✎
11:55
|
(33) вы отладкой умеете пользоваться? Если да, вы можете зайти в ссылку документа и пройтись по его реквизитам, посмотреть, что там хранится?
|
|||
35
Kassern
04.05.22
✎
11:56
|
Прежде чем писать вот этот код, вы заходили в отладке в ОбъектДок.ТаблицаРегистровСведений? Смотрели вообще что там хранится?
//Получаем список строк соответсвтвующих отбору, и перебором удаляем. МассивПустыхСтрок = ТаблицаРегистровСведенийДок.НайтиСтроки(СтруктураДляПоиска); Для Каждого Строка Из МассивПустыхСтрок Цикл ТаблицаРегистровСведенийДок.Удалить(Строка); КонецЦикла; ОбъектДок.Записать(); |
|||
36
pesol
04.05.22
✎
12:03
|
(35) ДокументТабличнаяЧастьСтрока.КорректировкаЗаписейРегистров.ТаблицаРегистровСведений
"ИМЯ": "ПервоначальныеСведенияОСБухгалтерскийУчет" |
|||
37
Kassern
04.05.22
✎
12:06
|
(36) в отладке при остановке на точке нажимаете shift+F9 на документ ваш корректировочный и заходите в данную табличку, что вы там видите?
|
|||
38
Kassern
04.05.22
✎
12:07
|
(36) О чем я и писал ранее "А в ТаблицаРегистровСведений скорее всего имена таблиц используемых для движений". Вот у вас есть табличка и именами таблиц, а дальше вы в цикле ищите основные средства в ней)
|
|||
39
Kassern
04.05.22
✎
12:08
|
вангую, что оба цикла для регистров сведений и накопления просто пролетают без вхождения. Саму же таблицу где ваши ОС вы даже не заходите и никакого поиска в ней не осуществляете.
|
|||
40
pesol
04.05.22
✎
12:11
|
||||
41
Kassern
04.05.22
✎
12:13
|
(40) а вот теперь сделайте 3 скрина, первый для для ТаблицаРегистровНакопления, второй для ТаблицаРегистровСведений и третий для Движения. Именно с внутрянкой, какие там строки
|
|||
42
Kassern
04.05.22
✎
12:13
|
думаю после этого вам все станет понятным, я на это надеюсь
|
|||
43
pesol
04.05.22
✎
12:19
|
(41) раскрываются только таблица "Движения"
https://ibb.co/y0kRWkt |
|||
44
Kassern
04.05.22
✎
12:21
|
(43) открою вам маленький секрет, можно не только плюсиком расскрывать, видите сверху справа есть такая кнопочка с рукой и квадратом, рядом со значком функции. Встаньте на нужную строчку и нажмите на этот значок с рукой
|
|||
45
Kassern
04.05.22
✎
12:24
|
плюсом вы лишь структуру увидели, а не сами данные, которые там хранятся
|
|||
46
pesol
04.05.22
✎
12:27
|
(44) https://ibb.co/D8m6PDY там только имя регистра
|
|||
47
Kassern
04.05.22
✎
12:28
|
(46) а теперь ответьте мне, что по вашему вот этот код сделает?)
МассивПустыхСтрок = ТаблицаРегистровСведенийДок.НайтиСтроки(СтруктураДляПоиска); Для Каждого Строка Из МассивПустыхСтрок Цикл ТаблицаРегистровСведенийДок.Удалить(Строка); КонецЦикла; |
|||
48
Kassern
04.05.22
✎
12:29
|
я же вас сразу спросил...
- В отладке пробовали открывать документ, смотреть где движения хранятся - конечно пробовал) |
|||
49
pesol
04.05.22
✎
12:29
|
(47) я думаю, что ничего)))
|
|||
50
Kassern
04.05.22
✎
12:30
|
А теперь встаньте на табличку Движения и так же нажмите эту кнопку
|
|||
51
Kassern
04.05.22
✎
12:32
|
Вы увидите все ваши строчки документа. Таблицы движений лишь хранят информацию о том какие таблицы используются для этой корректировки, только их имена. Далее, когда вы заходите в документ, у вас отображаются выбранные таблички, а дальше отбором из таблицы Движений заполняются строчки в документе.
|
|||
52
Kassern
04.05.22
✎
12:32
|
Вам нужно работать именно с этой таблицей, искать там нужные строчки и редактировать
|
|||
53
pesol
04.05.22
✎
12:33
|
(50) там только перечень всех возможных регистров для этого типа документа
|
|||
54
pesol
04.05.22
✎
12:34
|
||||
55
Kassern
04.05.22
✎
12:34
|
(53) ага дальше встаете на нужный вам регистр и на него так же жмякаете кнопку с рукой
|
|||
56
Kassern
04.05.22
✎
12:35
|
ТЧ с таблицами сведений и накопления как раз нужны, для отбора нужных таблиц в таблице Движения
|
|||
57
DJ Anthon
04.05.22
✎
12:36
|
https://transfiles.ru/0soca
Мое удаление помеченных объектов с чисткой записей в документах корректировки записей регистров, потому что штатная это делать не умела. Если хочешь разобраться, ищи в коде переменную УдалятьВКорректировках, там всего две вставки. Открывать в режиме обычного приложения. |
|||
58
DJ Anthon
04.05.22
✎
12:38
|
В смысле не мое, а допиливание стандартной, но обычный режим уже устарел, так что это больше для изучения. Хотя работает до сих пор отлично и быстро, и ещё функции полезные есть.
|
|||
59
pesol
04.05.22
✎
12:39
|
(58) отлично! Спасибо! сейчас посмотрю! Вроде то что надо
|
|||
60
pesol
04.05.22
✎
12:40
|
(56) там пусто) https://ibb.co/yNFBsMS
|
|||
61
Kassern
04.05.22
✎
12:40
|
(59) лучше бы вам самим разобраться, дальше будет проще, когда отладкой научитесь по полной пользоваться.
|
|||
62
Kassern
04.05.22
✎
12:40
|
(60) а документ со строчками записан уже в базу?
|
|||
63
Kassern
04.05.22
✎
12:41
|
или вы в новый документ зашли?
|
|||
64
pesol
04.05.22
✎
12:41
|
(62) конечно
|
|||
65
pesol
04.05.22
✎
12:41
|
(61) на примере всегда проще и понятнее
|
|||
66
pesol
04.05.22
✎
12:45
|
(57) По коду глянул - вроде то что нужно. Как и надо было поиск по измерения, ресурсам, реквизитам.. сейчас протестирую
|
|||
67
DJ Anthon
04.05.22
✎
13:39
|
(66) зацените кнопку "Пометить на удаление подобные" ))
кстати, там еще есть Игнорировать ведущие измерения в регистрах сведений - я настолько к ней привык, что начинаю удаление уже с этой опцией, все равно эти записи никому никогда не нужны, а 1С сама их никогда не удаляет, думает, что там содержится что-то важное, хотя эти записи сама тайком и создаёт. Это непривязанные к документам записи регистров сведений, которых в базе может быть миллион. |
|||
68
pesol
04.05.22
✎
13:52
|
(67) пока не удалось) при нажатии "найти ссылки" ошибка: Значение не является значением объектного типа (Данные)
{ВнешняяОбработка.УдалениеПомеченныхОбъектов.Форма.Форма.Форма(969)}: Объект = ЭтаФорма.ЭлементыФормы.СсылкиНаУдаляемыеОбъекты.ТекущиеДанные.Данные.Ссылка; |
|||
69
pesol
04.05.22
✎
14:03
|
(68) я затупил)
|
|||
70
lEvGl
гуру
04.05.22
✎
14:03
|
(63) вам тоже нужно секреты открывать, что бы движения было видно их надо прочитать()
|
|||
71
Serg_1960
04.05.22
✎
14:12
|
ТС к сотому посту получит правильный совет или нет? Ведь по традиции форума, сначала дадут множество разных советов/ответов, но правильный ответ на вопрос будет дан ближе к сотому посту :)
|
|||
72
lEvGl
гуру
04.05.22
✎
14:16
|
правильный ответ к ста обычно выглядит как "сто!"
|
|||
73
Kassern
04.05.22
✎
14:17
|
(70)я хз где ТС пытается открыть и посмотреть содержимое движений. Но если это делать например в отладке в процедуре ПриСозданииНаСервере, то состав движений без проблем читается подобным образом https://disk.yandex.ru/i/zLdWXVPl3mdfMA
|
|||
74
lEvGl
гуру
04.05.22
✎
14:26
|
+ да писать надо и проверять, что не очень хочется, надо же еще проверить на ОС в регистре. по названию проверять или по типу, это же ему виднее
(73) если правильно вижу интерфейс - у него ОП, и потом, это ведь обработка, перебирает документы и удаляет ненужное |
|||
75
pesol
04.05.22
✎
14:29
|
(73) это наверное бухгалтерия предприятия. Там, вероятно, по-другому устроен данный документ
|
|||
76
pesol
04.05.22
✎
14:30
|
Бухгалтерия гос. учреждения (БГУ) 1.0 - это обычное приложение
|
|||
77
Kassern
04.05.22
✎
14:30
|
(75) это УТ11
|
|||
78
pesol
04.05.22
✎
14:31
|
(77) тем более))
|
|||
79
Kassern
04.05.22
✎
14:31
|
В общем логика одна, как я вижу, что изначально и написал, есть ТЧ у документа, где хранятся имена используемых таблиц и есть Движения, где хранятся уже строчки документа
|
|||
80
Kassern
04.05.22
✎
14:32
|
ТС же пытался обойти имена используемых таблиц, думая, что там его заветные ОС, на что я и написал глянуть в отладку, что он там обходит)
|
|||
81
pesol
04.05.22
✎
14:33
|
В итоге помогла обработка (57)
|
|||
82
Kassern
04.05.22
✎
14:37
|
(74) Если через внешнюю обработку, то да нужно предварительно прочитать регистр. Если же из формы самого документа, то там он уже прочитан, поэтому и так работает)
|
|||
83
Serg_1960
04.05.22
✎
15:32
|
(82) Из под формы у документа может быть ещё одно "состояние" - "изменён, но ещё не записан" :)
|
|||
84
lEvGl
гуру
04.05.22
✎
16:16
|
(82) в обычном приложении в форме ничего не видно(
|
|||
85
Kassern
04.05.22
✎
16:17
|
(84) значит это фишка управляемых форм, давно с ОП не работал)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |