powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / 7.7 СделатьНеПроведенным() - не работает
25 сообщений из 32, страница 1 из 2
7.7 СделатьНеПроведенным() - не работает
    #35385424
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, сталкивался ли кто-нибудь в 7.7 с проблемой, что СделатьНеПроведенным() не работает для документа. После нее все равно остается документ проведен. В дебаггере смотрели - никуда он не заходит (нету предопределенных процедур для этого события), пробовали вставлять предопределенную процедуру - ничего не помагает :(
Хотя если интерактивно распроводить его (ручками) - он нормально распроводится (и проводится потом).
Уже не знаю куда копать, чтобы решить проблему.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35385440
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А где ты это пишешь?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35385528
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПриОтменеПроведения()
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35387511
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тяп ЛяпА где ты это пишешь?

Во внешней обработке
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35387512
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Программист 1с]ПриОтменеПроведения()[/quot

Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35387656
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot

Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно????
В модуле проведения документа ставишь эту процедуру и в ней пишешь:
Если ЯНехочуЧтобыПроводилось=1 Тогда
СтатусВозврата(0);
КонецЕсли;
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35387754
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1с Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot

Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно????
В модуле проведения документа ставишь эту процедуру и в ней пишешь:
Если ЯНехочуЧтобыПроводилось=1 Тогда
СтатусВозврата(0);
КонецЕсли;

Читать внимательнее сообщение первое.
Из него ясно, что все предопределенные процеуры просмотрелись - нигде никаких возвратов не стоит.
Более того, повторюсь, что вручную документ нормально распроводится!
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35388034
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Витал_t01 Тяп ЛяпА где ты это пишешь?

Во внешней обработке

Все должно работать.
Какой документ распроводишь, в какой конфигурации, код покажи (только кратко)?
Может, транзакцию коряво используешь?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35388333
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал_t01 Программист 1с Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot

Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно????
В модуле проведения документа ставишь эту процедуру и в ней пишешь:
Если ЯНехочуЧтобыПроводилось=1 Тогда
СтатусВозврата(0);
КонецЕсли;

Читать внимательнее сообщение первое.
Из него ясно, что все предопределенные процеуры просмотрелись - нигде никаких возвратов не стоит.
Более того, повторюсь, что вручную документ нормально распроводится!1.Давайте код - где вы распроводите документ.
2. ТИИ делали?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35389774
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1с Витал_t01 Программист 1с Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot

Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно????
В модуле проведения документа ставишь эту процедуру и в ней пишешь:
Если ЯНехочуЧтобыПроводилось=1 Тогда
СтатусВозврата(0);
КонецЕсли;

Читать внимательнее сообщение первое.
Из него ясно, что все предопределенные процеуры просмотрелись - нигде никаких возвратов не стоит.
Более того, повторюсь, что вручную документ нормально распроводится!1.Давайте код - где вы распроводите документ.
2. ТИИ делали?

Код - ничего особенного. Этот же код распроводит другие типы документов нормально, а вот с этими засада какая-то.

Док = СоздатьОбъект("Документ");
Док.НайтиДокумент(ОбъектДок);
Если Док.Выбран() = 1 Тогда
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
КонецЕсли

На строку "Док.СделатьНеПроведенным();" попадает (смотрели по дебагеру), но ничего не происходит с доком.

ТИИ - не делал, т.к. база новая.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35390167
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СделатьНеПроведенным();
Синтаксис:
СделатьНеПроведенным()
Назначение:
Отменить проведение документа.
Замечание:
Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

ОбъектДок - откуда взяли?

Пример у вас в отдельной обработке?

Зачем эти 2 строки подряд:
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
?????????????????

Сделайте
док.удалить(0)
Док.СнятьПометкуУдаления();

И вобще - судя по вашему тексту глупый вопрос: А вы УВЕРЕНЫ что документ проведен?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35392359
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1сСделатьНеПроведенным();
Синтаксис:
СделатьНеПроведенным()
Назначение:
Отменить проведение документа.
Замечание:
Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

ОбъектДок - откуда взяли?

Пример у вас в отдельной обработке?

Зачем эти 2 строки подряд:
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
?????????????????

Сделайте
док.удалить(0)
Док.СнятьПометкуУдаления();

И вобще - судя по вашему тексту глупый вопрос: А вы УВЕРЕНЫ что документ проведен?

Зачем копируете описание метода в хэлпе, думаете это не прочитали?
ОбъектДок - не важно откуда взял, он нужен для того чтобы нашелся Док, и Док - находится!
Если вам так интересно, ОбъектДок - достается из реквизита справочника, только это не относится к возникшей проблеме.
+ не понятно, что вас смутило так в "Док.СнятьПометкуУдаления();" - ?
+ Документ - проведен, уверен. Если начались такие глупые вопросы, значит вы лично мне уже не поможете.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35392400
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас ошибка перестала появляться. Нормально распроводится.
Так и не ясно в чем была проблема.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35392839
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал_t01Если начались такие глупые вопросы, значит вы лично мне уже не поможете.
Выйдите на форум и напишите подряд эти 2 строки. Только не обращайте внимания на первые 50 криков про дятла. Дальше вам возможно подскажут что здесь неправильно.
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35393739
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1с Витал_t01Если начались такие глупые вопросы, значит вы лично мне уже не поможете.
Выйдите на форум и напишите подряд эти 2 строки. Только не обращайте внимания на первые 50 криков про дятла. Дальше вам возможно подскажут что здесь неправильно.
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();

Вы мне хотите намекнуть на то что одновременно документ не может быть проведен и помечен на удаление? И Что?
1-я строка - его распроведет, если он был проведен, а 2-я строка - снимет пометку на удаление, если она была! Никаких противоречий не вижу! Вы сами напишете про то "что здесь неправильно" или будете посылать там куда-то где кто-то подскажет?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394113
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал_t01Вы мне хотите намекнуть на то что одновременно документ не может быть проведен и помечен на удаление? И Что?
1-я строка - его распроведет, если он был проведен, а 2-я строка - снимет пометку на удаление, если она была! Никаких противоречий не вижу! Вы сами напишете про то "что здесь неправильно" или будете посылать там куда-то где кто-то подскажет? Даже с учетом ваших слов. Превыдущая фраза про выйти на форум не изменилась.
Для вашего успокоения скажу - все нормально. И не слушайте вы "программиста 1с" - он ничего не знает.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394481
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Витал_t01Сейчас ошибка перестала появляться. Нормально распроводится.
Так и не ясно в чем была проблема.

Да в чем угодно.
И кипятиться не стоит - твой код реально глупый. И гарантировать, что нагромождение ненужных глупостей не должно повлиять на результат не может никто.

Док = СоздатьОбъект("Документ");

Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""
Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести
Док.СделатьНеПроведенным();
КонецЕсли;
КонецЕсли;

Проблему решил? Ну, и забей.
Кстати, судя по
>> ОбъектДок - достается из реквизита справочника,
запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом ...
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394662
Stix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал_t01Подскажите, сталкивался ли кто-нибудь в 7.7 с проблемой, что СделатьНеПроведенным() не работает для документа. После нее все равно остается документ проведен. В дебаггере смотрели - никуда он не заходит (нету предопределенных процедур для этого события), пробовали вставлять предопределенную процедуру - ничего не помагает :(
Хотя если интерактивно распроводить его (ручками) - он нормально распроводится (и проводится потом).
Уже не знаю куда копать, чтобы решить проблему.
в модуле документа нельзя распровести текущийдокумент, RTFM
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394673
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тяп Ляп Витал_t01Сейчас ошибка перестала появляться. Нормально распроводится.
Так и не ясно в чем была проблема.

Да в чем угодно.
И кипятиться не стоит - твой код реально глупый. И гарантировать, что нагромождение ненужных глупостей не должно повлиять на результат не может никто.

Док = СоздатьОбъект("Документ");

Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""
Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести
Док.СделатьНеПроведенным();
КонецЕсли;
КонецЕсли;

Проблему решил? Ну, и забей.
Кстати, судя по
>> ОбъектДок - достается из реквизита справочника,
запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом ...

В чем конкретно мой код глупый?
Вы приводите свой код:
"Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""",
который делает тоже самое что и мой. Только в моем, на случай, если как вы пишете "ОбъектДок=""", стоит проверка "Если Док.Выбран() =1 Тогда".

Вот посмотрел специально в описании метода НайтиДокумент стоит пример:

Док = СоздатьОбъект("Документ.НаклПрих");
// позиционируем созданный объект на заданном документе
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
// если документ найден, то удалим его
Док.Удалить();
Иначе
Предупреждение ("Неверно задан документ!");
КонецЕсли;

В этом примере как и у меня использована конструкция:

Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда

Получается по вашей логике он тоже глупый?

Далее, смотрю пример для метода СделатьНеПроведенным() и там тоже нету проверки на то что он проведен. Скажу по секрету, если документ будет непроведен - применение этого метода ничего не изменит - можете сами в этом убедиться. И проверку делать необязательно.
Еще скажу по секрету, что эта обработка применяется в нескольких филиалах и там не возникало такой проблемы и тем более она не в этих 2-х строках о которых начался разговор. Думаю скорее всего дело в применении вложенных транзакций. Когда я задавал вопрос на форуме, то надеялся что у кого-либо возникала подобная проблема. А мне в ответ указывают на то что там нет той проверки, там не той, про "первые 50 криков дятлов" - все это замечания вообще не по существу.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394687
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stixв модуле документа нельзя распровести текущийдокумент, RTFM

Выше написал же что это делается во внешней обработке.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394690
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1сДля вашего успокоения скажу - все нормально. И не слушайте вы "программиста 1с" - он ничего не знает.

Так я готов послушать - что вы предлагаете?
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394716
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Витал_t01 Тяп Ляп Витал_t01Сейчас ошибка перестала появляться. Нормально распроводится.
Так и не ясно в чем была проблема.

Да в чем угодно.
И кипятиться не стоит - твой код реально глупый. И гарантировать, что нагромождение ненужных глупостей не должно повлиять на результат не может никто.

Док = СоздатьОбъект("Документ");

Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""
Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести
Док.СделатьНеПроведенным();
КонецЕсли;
КонецЕсли;

Проблему решил? Ну, и забей.
Кстати, судя по
>> ОбъектДок - достается из реквизита справочника,
запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом ...

В чем конкретно мой код глупый?
Вы приводите свой код:
"Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""",
который делает тоже самое что и мой. Только в моем, на случай, если как вы пишете "ОбъектДок=""", стоит проверка "Если Док.Выбран() =1 Тогда".

Вот посмотрел специально в описании метода НайтиДокумент стоит пример:

Док = СоздатьОбъект("Документ.НаклПрих");
// позиционируем созданный объект на заданном документе
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
// если документ найден, то удалим его
Док.Удалить();
Иначе
Предупреждение ("Неверно задан документ!");
КонецЕсли;

В этом примере как и у меня использована конструкция:

Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда

Получается по вашей логике он тоже глупый?

Далее, смотрю пример для метода СделатьНеПроведенным() и там тоже нету проверки на то что он проведен. Скажу по секрету, если документ будет непроведен - применение этого метода ничего не изменит - можете сами в этом убедиться. И проверку делать необязательно.
Еще скажу по секрету, что эта обработка применяется в нескольких филиалах и там не возникало такой проблемы и тем более она не в этих 2-х строках о которых начался разговор. Думаю скорее всего дело в применении вложенных транзакций. Когда я задавал вопрос на форуме, то надеялся что у кого-либо возникала подобная проблема. А мне в ответ указывают на то что там нет той проверки, там не той, про "первые 50 криков дятлов" - все это замечания вообще не по существу.

Глупость имелось в виду, конечно, сочетание

Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();

Конечно можно и
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
Можно и проверку на пустое значение сделать, просто мой вариант делает это проще и за один шаг.
Примеры в книжке - это не набор полезных приемов, а просто пример кода. Конечно, рабочего кода.

А что касается "первых 50 криков дятлов", то меня лично тошнит от таких умников как ты.
Задают вопрос "У меня не работает 1С. Почему?" и, мало того, что полагают, что кому-то доставляет удовольствие тащить подробности клещами, так еще и ребусами изъясняются, а через неделю вообще выясняется, что у них, видите ли, транзакции вложенные не закрываются ... Ненавижу.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394736
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тяп Ляп
А что касается "первых 50 криков дятлов", то меня лично тошнит от таких умников как ты.
Задают вопрос "У меня не работает 1С. Почему?" и, мало того, что полагают, что кому-то доставляет удовольствие тащить подробности клещами, так еще и ребусами изъясняются, а через неделю вообще выясняется, что у них, видите ли, транзакции вложенные не закрываются ... Ненавижу.

О-па-па! Ничего не можем предложить в качестве решения - сразу переходим на оскорбления и т.п.
Я разве где-то написал что "транзакции вложенные не закрываются" ? Ничего подобного.
+ Никаких подробностей тащить не надо. В первом посте в целом достаточно информации.
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394763
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал_t01 Думаю скорее всего дело в применении вложенных транзакций.

... и разбираться надо с транзакциями, а не с отдельными "несрабатывающими" методами.
Ведь что бы ни делал неоднократно процитированный эдесь (или какой-либо другой) код с данными - если он, во-первых, выполняется в транзакции,и, во-вторых, фиксируется какая-либо ошибка (неважно, статусВозврата(0), ошибка при записи, или что-либо еще) - транзакция не завершится успешно, и отменит все изменения данных. И, кстати, вложенность транзакций применительно к 1С - это иллюзия, нет такого в природе этого движка. А поскольку ошибка проявляется не всегда - связана она не с кодом, как таковым, а с данными, над которыми этот код проявляется. И тогда ошибку никто, кроме автора, живущего в базе с "кривыми" данными (по отношению к кривому коду) - не найдет никогда. Максимум, что можно посоветовать - так реорганизовать код, чтобы иметь шансы увидеть, из-за чего возникает ошибка. Например, проследить, чтобы чтобы:
- никаких вложенных транзакций
- никаких "молчаливых" обработчиков исключений (т.е. без вывода, или хотя бы накопления, адекватных сообщений)

В идеале - чтобы вся значимая часть алгоритма обработки находилась между

НачатьТранзакцию()
попытка
//
// выполняется вся обработка
//
ЗафиксироватьТранзакцию()
исключение
сообщить(описаниеОшибки());
отменитьТранзакцию();
конецПопытки;


и никаких попыток\исключений между ними не было, не говоря уже о транзакциях .

А реорганизовав код - терпеливо ждать, когда ошибка проявится и сообщит о себе. И не успокаиваться, если она сама-собой не проявится. Значит, данные не вполне соответствуют кривизне алгоритма, и эта ненайденная мина обязательно когда-нибудь сработает
...
Рейтинг: 0 / 0
7.7 СделатьНеПроведенным() - не работает
    #35394770
Витал_t01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pail Витал_t01 Думаю скорее всего дело в применении вложенных транзакций.

... и разбираться надо с транзакциями, а не с отдельными "несрабатывающими" методами.
...

А реорганизовав код - терпеливо ждать, когда ошибка проявится и сообщит о себе. И не успокаиваться, если она сама-собой не проявится. Значит, данные не вполне соответствуют кривизне алгоритма, и эта ненайденная мина обязательно когда-нибудь сработает

Совершенно с вами согласен! Вполне разумный совет.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / 7.7 СделатьНеПроведенным() - не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]