v7: При удалении строк документа столкнулся с проблемой, вылетает 1С! #251115


#0 by Sasha_H
А прикол весь в том, что делаю я проверку в модуле документа, короче я щас в кратце наброшу код: КонецПроцедуры
#0 by Sasha_H
А прикол весь в том, что делаю я проверку в модуле документа, короче я щас в кратце наброшу код: КонецПроцедуры
#1 by ТелепатБот
#2 by AntonU
Ну и код... ничего не понимаю ( что за проверка?
#3 by Морозов Александр
КруТя
#4 by Sasha_H
Если я претсавлю весь код из получением остатков, запросы и т.п. тебе полекчает! Суть проблемы вроде понятна!
#5 by Эльниньо
Перекинь все в ПриЗаписи и больше фуйней в модуле проведения не занимайся.
#6 by Sasha_H
Хороший ответ, там не получится так! Уже думал над этим!
#7 by Ёпрст2
И что написано в ОтменитьПроведениеДокумента ??
#8 by Sasha_H
просто ПриЗаписи контроля нет посольку чел себе набросал на быструю руку и хочет просто сохранить без каких-либо проверок, а вот когда уже проводить тогда мне нужно все проверять! Такога забоганка заказчика.
#9 by Sasha_H
Пля сорри не так написал! СделатьДокументНеПроведенным
#10 by Omega
а база дбф? может цикл организовать иначе как-нибудь? например выгружать в тз, делать в тз цикл примерно такой: а потом тз загружать обратно в документ?
#11 by Морозов Александр
:-)
#12 by DrShad
А ничего что выборка строк нарушается?
#13 by DrShad
+ и почему это не получится проверить строки до проведения?
#14 by как могу
А если вот так сделать?
#15 by как могу
+ пропустил вставить после начала цикла ПолучитьСтрокуПоНомеру(сч);
#16 by aka Любитель XML
в цикле выбратьСтроки; убери...
#17 by Omega
вообще интересно, как будет работать конструкция выбратьстроки; пока получитьстроку = 1 цикл счас обработку наваяю.
#18 by Sasha_H
если в Цикле убрать ВыбратьСТроки тогда цикл упадет поскольку строка удалилась! Далее насчет проверка перед проведением говорил не получится внимательно читаем
#19 by Sasha_H
Это бред! Нужно удалаятьСТроку
#20 by как могу
зациклиться должен!
#21 by DrShad
из я так и не понял почему нельзя? потому что заказчик так хочет, тогда удачи в дальнейшей жизни
#22 by Omega
ага. циклится и висит, понемножку отъедая память.
#23 by Sasha_H
У меня нету ошибки при удалении Ошибка вот где СделатьДокументНеПроведенным по ходу он не может откатать тразакцию! Если я выкидаю СделатьДокументНеПроведенным то все нормально только документ проводится , Но проблема вся в Том что ТЧ документа пуста а мне нужно отменить проведение, в данной ситуации я нашел выход только Предупреждением и то на 7 секунд поскольку будет висет транзакция
#24 by aka Любитель XML
+1
#25 by aka Любитель XML
по идеи должен удалить все строки и выйти из документа
#26 by Эльниньо
#27 by DrShad
чтоб документ не провелся не записывай операцию и все
#28 by aka Любитель XML
+ из цикла выйти...
#29 by Нюкся
Использовать метка, перейти для перехода в начало выборки строк если удалена строка. ПриЗаписиПерепроводить + В процедуре проведения СтатусВозврата
#30 by aka Любитель XML
давайте ещё посоветуем ему запрос к скулю написать...
#31 by как могу
отмени сначало проведение, а потом начинай удалять ТЗ!
#32 by Sasha_H
Я уже что не токо не делал можете сами проверить в Процедуре ОБработкаПроведенияДокумента Убрать все строки ТЧ Дока, а потом отменить проведения и сажитее что у вас всех получилося!
#33 by DrShad
читай проведение заканчивается записью операции
#34 by Omega
ыы
#35 by Sasha_H
Не ну я не могу замучился уже объяснять когда обрабатівается документом Провести, хочешь ті єтого или нет он заходит в Процедуру ОбработкаПроведенияГде нельзя отменить проведения поскольку не может он откатать транзакцию!
#36 by Sasha_H
ЗЫ! Операций там нет, работа с Регами!
#37 by smaharbA
ВыгрузитьТабЧасть ЗагрузитьТабЧасть или взад удаляй, то что в будет валить...
#38 by smaharbA
как это не может отменить ?
#39 by FreeFin
ОбработкаПроведения = выполняется корректно если документ записан. УдалитьСтроку без записи = изменить документ. Без "прямой транзакции", вызываемой процедурой ОбработкаПроведения можно пробовать "обмануть", вставив НачатьТранзакцию сразу после объявления процедуры Процедура ОбработкаПроведения Но лучше не заниматься подобной хней в модуле проведения. Вынеси проверку в ПриЗаписи в модуль формы и нееб.
#40 by smaharbA
НеПроводить ? СтатусВозврата ? или я чет не понимаю
#41 by Sasha_H
Всем советую попробовать и каждій своим методом, кто хочет ТаблицуЗначений используйте ее, только попробуйте в Процедуре ОбработкаПроведения Удалить все строки и отменить проведение!
#42 by zalex
Тормоз, тебе ж сказали сбивается, делать надо так например Для Сч=1 По КоличествоСтрок Цикл и усе...
#43 by GrayT
А если там регистры? Фиг его знает что там у тебя там, у меня так работает - Выгружаю ТЧ в ТЗ Анализирую строки и удаляю их По оставшимся строкам выполняюю движение регистров + контроль остатков Если после всего СтатусВозврата=0 - из ТЗ гружу обратно в ТЧ. ЗЫ: И еще - это оригенально Отменять Проведение в Обработке проведения....
#44 by GrayT
Нахрена отменять проведение в обработке проведения? СтатусВозврата и все!
#45 by Sasha_H
Слышь бля... дятел если ты топой в циклах то не суйся сначала проверь а потом советуй!
#46 by Sasha_H
Давал СтатусВозврата Вылетает мля... попробуйте!
#47 by Sasha_H
Транзакция сама собой начата ХП 1С ибо это ОбработкаПроведения
#48 by zalex
Ну, если тупой дятел, кто ж тогда ты (после кода в ) даже представить страшно :) Дальнейшие комментарии излишни. Смени работу.
#49 by Sasha_H
Отвали А!
#50 by zalex
С удовольствием :)
#51 by DrShad
а РежимПроведения там есть?
#52 by GrayT
А вообще то. Если надо в обработке проведения удалить строки и не проводить - то скорее всего не взлетит.....
#53 by Sasha_H
Попробуйте!...
#54 by DrShad
и вообще проверяй до записи в регистр и никаких движений лишних не будет
#55 by DrShad
да пробовали уже и до проведения документа все работает
#56 by FreeFin
Транзакция транзакции рознь. Проведение лочит таблички БД даже на чтение, ибо тыкает записи (регистров и/или операций) непосредственно в них, НачатьТранзакцию - лепит времянки и их "работает", не лоча таблички, аж до Зафиксировать.
#57 by GrayT
Попробовал. В 43 убрал обратную загрузку ТЗ. Т.е. попробовал не проводить с удаленными строками - теперь придется переиндексировать :)
#58 by Sasha_H
Д а Рег вооще пустой поскольку строк нету!
#59 by Sasha_H
Вот и что скажешь!!!!
#60 by DrShad
вот объясни внятно почему нельзя обработать ТЧ, а потом проводить?
#61 by gp42
Давай по существу, что тебе сделать надо: Сформулируй ТЗ. Народ подумает и предложит свои варианты. ИМХО: В обработке проведения отменять проведение в корне не правильно. И более того удалять строки из ТЧ документа в ОбработкеПроведения я бы не стал. Делай контроль до того как отправить документ на проведение.
#62 by smaharbA
Странно не вылетает Процедура ОбработкаПроведения(Парам)
#63 by Sasha_H
При записи пользователя я не могу проверить поскольку он может выбирать что угодно! Он на быструю руку набросал документ и нажал кнопку записать и все ему надо чтоб была ТЧ которую он делал! Потом когда он уже все это решит провести тогда идет проверка!
#64 by smaharbA
+ может я не верно понял ?
#65 by Skylark
а если это повесить на процедуру в кнопку "Провести"?
#66 by DrShad
да блин сначала проверь, а потом проводи
#67 by Omega
мне кажется, автор топика сам не понимает, что ему нужно. ну или напрочь лишен навыка связного общения. а гадать, что он имеет в виду, мне неинтересно.
#68 by DrShad
+1
#69 by aka Любитель XML
или тупой развод
#70 by GrayT
А вот если из Формы провести Провести, то нет :) При проведении документа происходит его запись
#71 by Sasha_H
А вот если из Формы провести Провести, то нет :) Из формы согласен!!!! Вот вопрос поставал в том, что 1С не может откатать поскольу удалились строки
#72 by Ёпрст2
Хз, всё работает ...
#73 by smaharbA
я на уже проведенном проверил, может на новом и вылетает странно проверил и на новом не вылетает
#74 by Sasha_H
ЗЫ! а по строке!
#75 by gp42
+"ИМХО: В обработке проведения отменять проведение в корне не правильно. " не совсем правильно сформулировал: В обработке проведения снимать проведение в корне не правильно, тьфу ты опять тофтология какаято, Короче имею ввиду что в обработке проведения Либо: 1. Проводишь документ 2. Запрещаешь проводить документ.(СтатусВозврата;)
#76 by smaharbA
А надо Док.Провести ?
#77 by GrayT
А ты попробуй СтатусВозврата подставить :)
#78 by Sasha_H
Ну люди тоже проверили я веть не лгу!
#79 by Ёпрст2
А зачем ? Есть же ОчиститьДвижения,если очень надо... а так вопрос будет задаваться, что документ не проведен ..
#80 by DrShad
а нафига
#81 by Sasha_H
Можно отменять можно и очень даже, допустим не заполнено какое-то поле все отменяем проведение, работает, а вот когда удалем строки от тогда его лагает
#82 by GrayT
Кажись ты так хотел сказать Либо ты проводишь документ и сохраняешь удаление строк Либо не проводишь и не делаешь ни каких других изменений (не сохраняешь удаление строк)
#83 by GrayT
Смысл простой - при проведении документ записывается и при непроведении нет... Его нельзя записать на половину (только удаление строк)
#84 by FreeFin
Дя уж. Бурятины. Удалить строки без записи и провести? В проведении, удалив из контекста (вещи виртуальной) и пытаться сделать разноску по регистрам и операциям того, что еще не существует или уже не существует. ))) "проведении документ записывается" чего, записывается или кем?
#85 by Sasha_H
Нет просто ему выдаются соответсвенны сообщения, что товар залимитирован и будет удален из ТЧ и удаляется и может такое быть что удалится вовсе из ТЧ если нету функции про отмену проведения то лагово никаких просто он проводится, но ТЧ пустая, а как токо повеить на него функцию Отмену проведения тогда вылетает
#86 by GrayT
п2.А думаешь что не записывается?
#87 by Sasha_H
Все люди Закрываем тему! Умных ответов я увидил только пару, а все остальное это просто дискусия! Все спасибо всем...
#88 by DrShad
не позорь родину
#89 by gp42
ну все полезли в дебри....
#90 by gp42
Стой
#91 by Sasha_H
Стою. )
#92 by GrayT
Чего ты там (в дебрях) нашел? Вернись....
#93 by gp42
Используй вопрос в при записи и все твои проблемы будут решены. Спрашивай пользователя Сохранить без проверки, если да то пусть сохраняет.
#94 by Sasha_H
Ок спс. Я что-то вроде того и реализую!
#95 by smaharbA
Ниче не лагает, и интерактивно все ОК и программно, одно отличие при программной строки все на месте
#96 by smaharbA
Че за лажа, почему у меня не "лагает" ?
#97 by GrayT
Попробуй из формы по кнопке #Провести
#98 by FreeFin
Дурак не думает, он знает ("Постулаты о дураках" (изсебя)) Документ должен быть Записан ДО начала проведения, обращение при проведении (создании новых/изменение) записей в таблицах регистров/проводок/операций идет не к строкам локального контекста (форме), а к физическим записям таблиц (ссыдки на которые есть записи в форме)для построения ссылок и индексов по их идентификаторам, ключевым полям, проч. Поэтому и нет предопределенной ПриПроведенииЗаписывать. Вывод=выносить проверку в форму...а уж в ПриЗаписи или Провести=дело вкуса.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С