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