#0
by EvgeniuXP
Почему нельзя во время проведения документа, перепровести автоматом другой документ? (версия 7.7)
#6
by Денис2
это значит, что нельзя открытым текстом сказать док.Провести. Но есть способы сказать это по-другому. Правда, это проведение будет не во время проведения текущего документа, а после завершения оного.
#7
by Мудрила Страшный
Почему после завершения? А через ОткрытьФорму... Ну и там при открытии с определенным параметром провести тот документ
#8
by Макс 1С
точно...ну пока одно действие не закончится, другое тоже не начнется... если уж мы так глубоко копаем... смсыл же в инициировании одного процесса из другого
#9
by Денис2
Дык, по-любому. Пока проводится один документ, второй не проведётся. Поэтому надо после.
#10
by Alexaha
если вызов "неявного" проведения осуществляется в ОбработкеПроведения это считается "во время проведения текущего документа" или после?
#11
by Макс 1С
все равно сначала закончиться проводиться первый док (родитель, если можно так выразится)... а уж потом наследник...
#13
by Alexaha
(8, 12) честно говоря я не заморачивался никогда на эту тему, просто делал это через ОткрытьФорму
#18
by Alexaha
просто я задумался, насколько корректным будет такой способ проведения "при проведении", если второй док будет опираться на результат проведения первого.....по логике вещей будет не то что ожидается, ведь транзакция первого дока еще не завершена..
#22
by Макс 1С
проводится проводится... куда же ему дется.... говорю же вариантов несколько... каждый выбирает сам :-)
#25
by Alexaha
движения в порядке, не сомневайся....(всем) с общего позволения продолжу размышлять: учитывая, что при не завершенной транзакции ИБ еще не обновлена, то для корректного проведения второго дока (с использованием движений первого) можно передавать в него эти реультаты, так наверно должно получиться...
#27
by Alexaha
тоже вариант, в принципе, только надо поймать тот момент когда зафиксировалась транзакция первого дока
#29
by Макс 1С
запускай через 2-3 секунды... а вообще зависит от базы..... опять же можно и проверку поставить проведен док или нет бывают моменты, мало ли........
#30
by Alexaha
например, когда есть два связанных документа, при проведении одного должен проводиться и другой
#31
by Alexaha
это то понятно, но! кто знает сколько будет фиксироваться транзакция? сам понимаешь - зависит от дока и базы, а проверка на "проведен" может прокатить только для нового дока а при перепроведении надо цепляться за что то другое
#33
by Макс 1С
ну передавай тогда ТекДок и докДляПроведения....а потом проверяй если ТекДок.Проведен = 0 тогда ждем еще чуть-чуть....а вообще вызывай обработку ожидания передКонецПроцедуры //ОбработкаПроведения2 сек. будет достаточно т.к. все движения сделаны
#34
by vitlick
А пучему нельзя весь цикл проведения скажем "подчиненых документов" реализовать в "родительском"?
#36
by Макс 1С
почему нельзя, можно, об этом и ветка... читай внимательнее хватит тебе, ну хочется челу, пускай делает, я сейчас так тоже не делаю... а раньше приходилось (через обработку ожидания)... мало ли какие ситуации бываютзы. а автор то где? погряс в ЖКК? ;-)
#37
by vitlick
Сори. Но я имел ввиду код проведения "подчиненного" дока реализовать в процедуре проведения "родительского".
#38
by KVIK
Не извращатесь. практически стандартный вариант, автору думаю подойдёт, если он появится :)
#39
by Макс 1С
надо сделать движения двумя разными датами... например.... изменение уже существующего дока в результате введения текущего..... и т.д.
#40
by Drufa
+16 Желательно проверить еще и ПриПовторномОткрытииПотому как док может быть открыт и Процедура ПриОткрытии не сработает. Есть док "распоряжение на выплату", на основании делаем Платежку, и при проведении Выписки должн быть провеен и док "распоряжение на выплату".
#41
by NS
Денис2 - как-то странно...Посты (9,12,19) Ну никак не стыкуются с советами вhttp://forum.mista.ru/topic.php?id=114905&
#46
by Morrison
проблема в том, что создается транзакция в транзакции, а хорошего в этом ничего нет. делать так не стоит. возможно была допущена ошибка при проектировании системы, раз приходится такие вещи применять. кстати на итс описаны проблемы транзакций, когда я устроился на новое место, в наследство досталась конфигурация, в которой при проведении формировались партии, о чем думал разработчик сего чуда не знаю, но в результате появилась ошибка которую никто в том числе и разработчик объяснить не мог, хотя на итс она описана, а именно, приходные документы тмц начали "цеплять" чужие партии при определенных обстоятельствах, и этом приводило к очень нехорошим последствиям.
#48
by Morrison
2 действительно. давно уже такую конструкцию не встречал, действительно решается только через открытьформу.
#50
by Макс 1С
что значит давно не встречал в СП же написано..."Замечание:Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения."
#53
by Morrison
2 все очень просто, допустим две приходные накладные, первая начинает проводится и создает партии с ид. 1,2,3,4,5, однако транзакция отменяется в результате ошибки который содержит документ. в этот момент проводится вторая накладная, создает партии и конечно же ид. этих партий 1,2,3,4,5, однако когда в первом документе исправляется ошибка и он проводится, он так же ставит своим партиям ид. 1,2,3,4,5.
#54
by Morrison
2 возможно, я не углублялся в этот вопрос :) как еще можно решить эту задачу? или вы имеете ввиду ОбработкаОжидания?
#55
by NS
Теперь уже я ниасилил.Первый документ при ошибке в момент проведения всё-таки создал партии, или нет? Ежели нет, то почему при втором проведении он делает ИД партий 1,2,3,4,5 ?
#56
by Alexaha
есть такая замечательная весчь как проверка статуса возврата, проводить другой док надо только в том случае если статус возврата = 1
#57
by Макс 1С
это не я спрашивал... во вторых как-то непонятно у тебя написано.... не должно так работать... корявый код.... НО в типовой, на сколько я помню,.. партии создаются до проведения.... а при проведении просто заполняются реквизиты
#58
by topasha
А в какой ситуации возникает необходимость операции проведения одного документа из другого? Приведите пример такой хозоперации.
#60
by topasha
Это я видел. Но не убедили. Изменения надо регистрировать тогда, когда они получены. Изменение существующего документа- это отдельная операция. Похоже, что просто база криво спроектирована. Или я не прав?
#61
by Morrison
2 не создал, но ссылки на них сохранил. в результате ссылки начинают указывать на партии указанные в другом документе. т.е. при ошибке при проведении надо чистить ссылки реквизита "партия", иначе данный реквизит будет ссылатся на партии чужого документа, проведенного позже.2 ничего не понял, что со статусом возврата?2 я о типовой и не говорил, я привел пример, нужно быть очень осторожным при использовании подобных конструкций.
#62
by Morrison
2 например автоматическая переоценка всех партий на остатке по новому приходу. подходит? :) это лень пользователей или проектировщиков к таким вот вещам приводит.
#63
by Макс 1С
блин ну 1С-же используют не тольок для ведения складского и бух. учета... кто документооборот на ней пишет, кто ЦБ да что угодно на ней можно писать (относительно конечно).... поэтому возможны ситауции..... про ссылки все равно не понял... а по поводу осторожно то тут согласен, хотя когда пишешь программу за деньги, надо быть во всем осторожным, а не только в этом..... поэтому ИМХО - корявый код...
#64
by NS
Так ничего и не понял - понял только одно - очень кривые руки программера, а партии, в проведении создавать - ошибкой не является.
#65
by Tereann
Не совсем прав, ну просто не встречал таких задач, где надо два документа вместе проводить.Только непонятно, зачем именно в момент проведения из ОбработкаПроведения второй документ проводить?Я на кнопку Провести вешал процедуру, которая последовательно проводила 2 или сколько там надо было документов.
#66
by Alexaha
если при проведении дока возникают траблы то хороший тон завершать код проц методом СтатусВозврата, так вот перед тем как инициировать проведение другого дока не мешает проверить Если СтатусВозврата = 1 тогда проводим
#67
by NS
Всё понял...........ВыбратьСтроки;СтатусВозврата;В документе остаются левые ссылки...Это как раз и называется кривые руки.
#68
by Morrison
может быть так будет понятней:есть док1 у котрого есть реквизит партия, типа справочник.партиипри проведении данный документ заполняет данный реквизит только что созданными им же партиями в справочнике "партии". созданные элементы в базе имеют идентификаторы: 1,2,3,4,5 (пусть в документе 5 строк)однако в момент провдеения возникает какая-либо ситуация приводяшая к отмене транзакции, в резултате элементы в справочнике "партии" 1,2,3,4,5 исчезают однако ссылки в документе остаются. пока пользователь устраняет причину по котрой не проводится документ, второй проводит другой документ док2, либо это делает первый просто отложив разбирательство проблемы с док1 на более позднее время, док2 имеет допустим 3 строки, в результате он создаст при проведении партии с идентификаторами 1,2,3 на которые (!) ссылаются три первых строки первого документа.
#69
by Morrison
2 наконец-то смог объяснить :) видимо плохой из меня лектор :) согласен с вами - это кривые руки. однако вы не представляете сколько времени просуществовала данная ошибка и "специалист" совершивший ее просто разводил руками :)
#70
by NS
Да сколько я такого видел...Например у человека стоит в ПриЗаписи записать, а он удивляется почему документ два раза проводится, и доказывает, что это ошибка платформы...а всего лишь - в приоткрытии - ПриЗаписиПерепроводитьНо это не говорит о том, что плохо Записать в ПриЗаписи, или ПриЗаписиПерепроводить...
#71
by Morrison
2 теперь я ничего не понял :) или вы про ситуацию при которой из модуля проведения одного документа вызывается проведение другого документа?2 NS вы так и не рассказали какой способ имели ввиду в , расскажете?
#72
by Morrison
2 я согласен, но мне кажется не совсем правильным, создавать транзакцию в транзакции. как правило действия описаные в совершаются в угоду ленивому пользователю, который в очередной раз нажаловался руководству, в результате таких действий теряется логика бизнес-процедуры и контроль за действиями пользователя, а также, как это ни странно, контроль операции самим пользователем.
#73
by NS
1) Глобальная Обработка Ожидания.2) Процедура ПриЗакрытии3) Проведение и провести для самого документа, в котором сидим из модуля формы.Для случая который я описал -КонецПроцедурыЗаписанный и проведенный документ по#Записать #Провестипроведется есно два раза
#76
by Morrison
2сопсоб 2: процедура ПриЗакрытии для документа из которого вызываем проведение другого? такой способ не подойдет т.к. ПриЗакрытии будет вызвана раньше нежели чем управление будет передано модулю документа.способ 3: не понял к сожалению, можно подробней?
#77
by Макс 1С
ух и я тогда тоже....только сперва давайте определимся... что надо проводить "грубо говоря" из модуля проведения? или до?... если до... то вопросов не возникает..... а вот если в модуле... т.е. вновь созданный и проведенный документ будет после текущего... тогда:1. вариант... открывать вновь созданный с передачей параметра, в зависимости от параметра вновь созданный проводиться - это уже относиится к модулю формы вновь созданного2. вариант обработка ожидания... в процедуру передаем вновь созданный документ (или список)... через несколько секунд после проведения текущего запускает процедура и проводит переданные её документы....что еще?
#79
by Morrison
2 я тоже пришел к выводу, что возможны только два варианта. конечно лишь в том случае если необходимо вызвать проведение другого документа именно по окончанию проведения первого, а не в какой либо другой момент.
#80
by Макс 1С
вот можно и так...но тут тот же минус что и моего 2... т.е. при групповом перепроведении этот вообще не отработает а мой может сбойнуть (хотя если это предусмотреть... то прокатит)
#82
by Morrison
2способ2: а вы что имели ввиду? :))))способ3: запутался. 1) в каком месте это все находится? 2) когда и где формируется список? 3) для чего нужна переменная Док? 4) зачем происходит вызов ПриЗаписии откуда он производится?что-то не складывается разговор :))2 интересно как быстро вы поняли о каком способе идет речь :)
#83
by Morrison
я так полагаю что порядок следующий:1) передача управления в модуль документа в процедуру ОбработкаПроведения2) передача управления из процедуры ОбработкаПроведения в процедуру ОбработкаПроведения модуля другого документа
#84
by NS
Насколько я понимаю - разговор действительно не складывается.Способ2 -При Проведении Документа иЗ его формы - Провести Запускается ДО ПРИЗАКРЫТИИ.Способ3 - процедура ПровестиДокумент - ес-но на кнопке "Провести" в документе.Спис Может формироваться где угодно. Хоть До проведения самого документа, хоть после, хоть в Модуле Документа (Поясняю - у метода провести могут быть параметры, и через них можно передавать что угодно, хотя передать из него список можно как угодно)
#86
by Коротков
Интересно, как в случае реализации такого перепроведения отреагирует платформа при восстановлении последовательности, если перепроведем более ранний документ и он будет в этой же последовательности? Вечный цикл? ;))
#87
by NS
Ежу понятно, что проведение подчиненных (связанных, как угодно) документов - в случае пакетного проведения делать не надо... Да и не получится.
#89
by EvgeniuXP
Сделал... во время проведения открываю форму другого документа, перепровожу его и закрываю его форму, затем текущий проводится...Когда документ уволить нажимают, он должен был поднять приказ о приеме и срок договора (бесрочного=30.12.9999) установить на дату увольнения автоматом, чтобы пользователю не беспокоиться...
#90
by Bolik
Как раз начал писать партионый учет - не подскажешь как тогда создавать партии при прходе товара? Как в типовой ТиС - при вводе новой строки?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Форма.ПолучитьАтрибут(День1) не дает значение этого реквизита
- v8: Как вывести на печать два документа в одном окне?
- Помогите уменьшить размер шрифта для распечатки через ККм
- SOS Фильтр в Фоксе на помеченные записи. Пожалуйста.
- убрать лишнюю скидку
- Проблема с выводом картинки в прайсе.
- Есть скульная база за что отвечают эти два файла?
- у кого есть синтаксис оператора While для VBA
- Шаблоны проводок в спр. Дополнительные проводки. Как добавить счета?
- Количество расчетчиков. Нормы.
- === ТОВАРНЫЙ ЧЕК ===
- Если интересует как определить кто блокирует журнал
- Общая ошибка MAPI Почта.Подключиться();
- Печать Счет-фактура из РНК
- Как переносить строки в печатных формах
- Как поменять заголовок поля ввода ????
- перенос Контрагента в другую группу, как?
- 1C + SQL: Связь между таблицами
- Как в журнал документов добавить колонку?
- Создание партий в приходной накладной