Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Подскажите, сталкивался ли кто-нибудь в 7.7 с проблемой, что СделатьНеПроведенным() не работает для документа. После нее все равно остается документ проведен. В дебаггере смотрели - никуда он не заходит (нету предопределенных процедур для этого события), пробовали вставлять предопределенную процедуру - ничего не помагает :( Хотя если интерактивно распроводить его (ручками) - он нормально распроводится (и проводится потом). Уже не знаю куда копать, чтобы решить проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2008, 15:47 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
А где ты это пишешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2008, 15:51 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
ПриОтменеПроведения() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2008, 16:17 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Тяп ЛяпА где ты это пишешь? Во внешней обработке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 07:52 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
[quot Программист 1с]ПриОтменеПроведения()[/quot Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 07:55 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно???? В модуле проведения документа ставишь эту процедуру и в ней пишешь: Если ЯНехочуЧтобыПроводилось=1 Тогда СтатусВозврата(0); КонецЕсли; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 10:06 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Программист 1с Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно???? В модуле проведения документа ставишь эту процедуру и в ней пишешь: Если ЯНехочуЧтобыПроводилось=1 Тогда СтатусВозврата(0); КонецЕсли; Читать внимательнее сообщение первое. Из него ясно, что все предопределенные процеуры просмотрелись - нигде никаких возвратов не стоит. Более того, повторюсь, что вручную документ нормально распроводится! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 10:46 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01 Тяп ЛяпА где ты это пишешь? Во внешней обработке Все должно работать. Какой документ распроводишь, в какой конфигурации, код покажи (только кратко)? Может, транзакцию коряво используешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 12:05 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01 Программист 1с Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно???? В модуле проведения документа ставишь эту процедуру и в ней пишешь: Если ЯНехочуЧтобыПроводилось=1 Тогда СтатусВозврата(0); КонецЕсли; Читать внимательнее сообщение первое. Из него ясно, что все предопределенные процеуры просмотрелись - нигде никаких возвратов не стоит. Более того, повторюсь, что вручную документ нормально распроводится!1.Давайте код - где вы распроводите документ. 2. ТИИ делали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 13:46 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Программист 1с Витал_t01 Программист 1с Витал_t01[quot Программист 1с]ПриОтменеПроведения()[/quot Ну да, есть такая процедура "ПриОтменеПроведенияДокумента()" - и что?Читать документацию - уже не можно???? В модуле проведения документа ставишь эту процедуру и в ней пишешь: Если ЯНехочуЧтобыПроводилось=1 Тогда СтатусВозврата(0); КонецЕсли; Читать внимательнее сообщение первое. Из него ясно, что все предопределенные процеуры просмотрелись - нигде никаких возвратов не стоит. Более того, повторюсь, что вручную документ нормально распроводится!1.Давайте код - где вы распроводите документ. 2. ТИИ делали? Код - ничего особенного. Этот же код распроводит другие типы документов нормально, а вот с этими засада какая-то. Док = СоздатьОбъект("Документ"); Док.НайтиДокумент(ОбъектДок); Если Док.Выбран() = 1 Тогда Док.СделатьНеПроведенным(); Док.СнятьПометкуУдаления(); КонецЕсли На строку "Док.СделатьНеПроведенным();" попадает (смотрели по дебагеру), но ничего не происходит с доком. ТИИ - не делал, т.к. база новая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 06:47 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
СделатьНеПроведенным(); Синтаксис: СделатьНеПроведенным() Назначение: Отменить проведение документа. Замечание: Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения. Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. ОбъектДок - откуда взяли? Пример у вас в отдельной обработке? Зачем эти 2 строки подряд: Док.СделатьНеПроведенным(); Док.СнятьПометкуУдаления(); ????????????????? Сделайте док.удалить(0) Док.СнятьПометкуУдаления(); И вобще - судя по вашему тексту глупый вопрос: А вы УВЕРЕНЫ что документ проведен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 11:13 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Программист 1сСделатьНеПроведенным(); Синтаксис: СделатьНеПроведенным() Назначение: Отменить проведение документа. Замечание: Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения. Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. ОбъектДок - откуда взяли? Пример у вас в отдельной обработке? Зачем эти 2 строки подряд: Док.СделатьНеПроведенным(); Док.СнятьПометкуУдаления(); ????????????????? Сделайте док.удалить(0) Док.СнятьПометкуУдаления(); И вобще - судя по вашему тексту глупый вопрос: А вы УВЕРЕНЫ что документ проведен? Зачем копируете описание метода в хэлпе, думаете это не прочитали? ОбъектДок - не важно откуда взял, он нужен для того чтобы нашелся Док, и Док - находится! Если вам так интересно, ОбъектДок - достается из реквизита справочника, только это не относится к возникшей проблеме. + не понятно, что вас смутило так в "Док.СнятьПометкуУдаления();" - ? + Документ - проведен, уверен. Если начались такие глупые вопросы, значит вы лично мне уже не поможете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 06:44 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Сейчас ошибка перестала появляться. Нормально распроводится. Так и не ясно в чем была проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 07:48 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01Если начались такие глупые вопросы, значит вы лично мне уже не поможете. Выйдите на форум и напишите подряд эти 2 строки. Только не обращайте внимания на первые 50 криков про дятла. Дальше вам возможно подскажут что здесь неправильно. Док.СделатьНеПроведенным(); Док.СнятьПометкуУдаления(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 11:07 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Программист 1с Витал_t01Если начались такие глупые вопросы, значит вы лично мне уже не поможете. Выйдите на форум и напишите подряд эти 2 строки. Только не обращайте внимания на первые 50 криков про дятла. Дальше вам возможно подскажут что здесь неправильно. Док.СделатьНеПроведенным(); Док.СнятьПометкуУдаления(); Вы мне хотите намекнуть на то что одновременно документ не может быть проведен и помечен на удаление? И Что? 1-я строка - его распроведет, если он был проведен, а 2-я строка - снимет пометку на удаление, если она была! Никаких противоречий не вижу! Вы сами напишете про то "что здесь неправильно" или будете посылать там куда-то где кто-то подскажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 14:47 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01Вы мне хотите намекнуть на то что одновременно документ не может быть проведен и помечен на удаление? И Что? 1-я строка - его распроведет, если он был проведен, а 2-я строка - снимет пометку на удаление, если она была! Никаких противоречий не вижу! Вы сами напишете про то "что здесь неправильно" или будете посылать там куда-то где кто-то подскажет? Даже с учетом ваших слов. Превыдущая фраза про выйти на форум не изменилась. Для вашего успокоения скажу - все нормально. И не слушайте вы "программиста 1с" - он ничего не знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 16:29 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01Сейчас ошибка перестала появляться. Нормально распроводится. Так и не ясно в чем была проблема. Да в чем угодно. И кипятиться не стоит - твой код реально глупый. И гарантировать, что нагромождение ненужных глупостей не должно повлиять на результат не может никто. Док = СоздатьОбъект("Документ"); Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок="" Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести Док.СделатьНеПроведенным(); КонецЕсли; КонецЕсли; Проблему решил? Ну, и забей. Кстати, судя по >> ОбъектДок - достается из реквизита справочника, запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 17:57 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01Подскажите, сталкивался ли кто-нибудь в 7.7 с проблемой, что СделатьНеПроведенным() не работает для документа. После нее все равно остается документ проведен. В дебаггере смотрели - никуда он не заходит (нету предопределенных процедур для этого события), пробовали вставлять предопределенную процедуру - ничего не помагает :( Хотя если интерактивно распроводить его (ручками) - он нормально распроводится (и проводится потом). Уже не знаю куда копать, чтобы решить проблему. в модуле документа нельзя распровести текущийдокумент, RTFM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 18:51 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Тяп Ляп Витал_t01Сейчас ошибка перестала появляться. Нормально распроводится. Так и не ясно в чем была проблема. Да в чем угодно. И кипятиться не стоит - твой код реально глупый. И гарантировать, что нагромождение ненужных глупостей не должно повлиять на результат не может никто. Док = СоздатьОбъект("Документ"); Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок="" Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести Док.СделатьНеПроведенным(); КонецЕсли; КонецЕсли; Проблему решил? Ну, и забей. Кстати, судя по >> ОбъектДок - достается из реквизита справочника, запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом ... В чем конкретно мой код глупый? Вы приводите свой код: "Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""", который делает тоже самое что и мой. Только в моем, на случай, если как вы пишете "ОбъектДок=""", стоит проверка "Если Док.Выбран() =1 Тогда". Вот посмотрел специально в описании метода НайтиДокумент стоит пример: Док = СоздатьОбъект("Документ.НаклПрих"); // позиционируем созданный объект на заданном документе Док.НайтиДокумент(Докум); Если Док.Выбран() > 0 Тогда // если документ найден, то удалим его Док.Удалить(); Иначе Предупреждение ("Неверно задан документ!"); КонецЕсли; В этом примере как и у меня использована конструкция: Док.НайтиДокумент(Докум); Если Док.Выбран() > 0 Тогда Получается по вашей логике он тоже глупый? Далее, смотрю пример для метода СделатьНеПроведенным() и там тоже нету проверки на то что он проведен. Скажу по секрету, если документ будет непроведен - применение этого метода ничего не изменит - можете сами в этом убедиться. И проверку делать необязательно. Еще скажу по секрету, что эта обработка применяется в нескольких филиалах и там не возникало такой проблемы и тем более она не в этих 2-х строках о которых начался разговор. Думаю скорее всего дело в применении вложенных транзакций. Когда я задавал вопрос на форуме, то надеялся что у кого-либо возникала подобная проблема. А мне в ответ указывают на то что там нет той проверки, там не той, про "первые 50 криков дятлов" - все это замечания вообще не по существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 18:59 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Stixв модуле документа нельзя распровести текущийдокумент, RTFM Выше написал же что это делается во внешней обработке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:05 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Программист 1сДля вашего успокоения скажу - все нормально. И не слушайте вы "программиста 1с" - он ничего не знает. Так я готов послушать - что вы предлагаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:08 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01 Тяп Ляп Витал_t01Сейчас ошибка перестала появляться. Нормально распроводится. Так и не ясно в чем была проблема. Да в чем угодно. И кипятиться не стоит - твой код реально глупый. И гарантировать, что нагромождение ненужных глупостей не должно повлиять на результат не может никто. Док = СоздатьОбъект("Документ"); Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок="" Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести Док.СделатьНеПроведенным(); КонецЕсли; КонецЕсли; Проблему решил? Ну, и забей. Кстати, судя по >> ОбъектДок - достается из реквизита справочника, запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом ... В чем конкретно мой код глупый? Вы приводите свой код: "Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""", который делает тоже самое что и мой. Только в моем, на случай, если как вы пишете "ОбъектДок=""", стоит проверка "Если Док.Выбран() =1 Тогда". Вот посмотрел специально в описании метода НайтиДокумент стоит пример: Док = СоздатьОбъект("Документ.НаклПрих"); // позиционируем созданный объект на заданном документе Док.НайтиДокумент(Докум); Если Док.Выбран() > 0 Тогда // если документ найден, то удалим его Док.Удалить(); Иначе Предупреждение ("Неверно задан документ!"); КонецЕсли; В этом примере как и у меня использована конструкция: Док.НайтиДокумент(Докум); Если Док.Выбран() > 0 Тогда Получается по вашей логике он тоже глупый? Далее, смотрю пример для метода СделатьНеПроведенным() и там тоже нету проверки на то что он проведен. Скажу по секрету, если документ будет непроведен - применение этого метода ничего не изменит - можете сами в этом убедиться. И проверку делать необязательно. Еще скажу по секрету, что эта обработка применяется в нескольких филиалах и там не возникало такой проблемы и тем более она не в этих 2-х строках о которых начался разговор. Думаю скорее всего дело в применении вложенных транзакций. Когда я задавал вопрос на форуме, то надеялся что у кого-либо возникала подобная проблема. А мне в ответ указывают на то что там нет той проверки, там не той, про "первые 50 криков дятлов" - все это замечания вообще не по существу. Глупость имелось в виду, конечно, сочетание Док.СделатьНеПроведенным(); Док.СнятьПометкуУдаления(); Конечно можно и Док.НайтиДокумент(Докум); Если Док.Выбран() > 0 Тогда Можно и проверку на пустое значение сделать, просто мой вариант делает это проще и за один шаг. Примеры в книжке - это не набор полезных приемов, а просто пример кода. Конечно, рабочего кода. А что касается "первых 50 криков дятлов", то меня лично тошнит от таких умников как ты. Задают вопрос "У меня не работает 1С. Почему?" и, мало того, что полагают, что кому-то доставляет удовольствие тащить подробности клещами, так еще и ребусами изъясняются, а через неделю вообще выясняется, что у них, видите ли, транзакции вложенные не закрываются ... Ненавижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:25 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Тяп Ляп А что касается "первых 50 криков дятлов", то меня лично тошнит от таких умников как ты. Задают вопрос "У меня не работает 1С. Почему?" и, мало того, что полагают, что кому-то доставляет удовольствие тащить подробности клещами, так еще и ребусами изъясняются, а через неделю вообще выясняется, что у них, видите ли, транзакции вложенные не закрываются ... Ненавижу. О-па-па! Ничего не можем предложить в качестве решения - сразу переходим на оскорбления и т.п. Я разве где-то написал что "транзакции вложенные не закрываются" ? Ничего подобного. + Никаких подробностей тащить не надо. В первом посте в целом достаточно информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:38 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
Витал_t01 Думаю скорее всего дело в применении вложенных транзакций. ... и разбираться надо с транзакциями, а не с отдельными "несрабатывающими" методами. Ведь что бы ни делал неоднократно процитированный эдесь (или какой-либо другой) код с данными - если он, во-первых, выполняется в транзакции,и, во-вторых, фиксируется какая-либо ошибка (неважно, статусВозврата(0), ошибка при записи, или что-либо еще) - транзакция не завершится успешно, и отменит все изменения данных. И, кстати, вложенность транзакций применительно к 1С - это иллюзия, нет такого в природе этого движка. А поскольку ошибка проявляется не всегда - связана она не с кодом, как таковым, а с данными, над которыми этот код проявляется. И тогда ошибку никто, кроме автора, живущего в базе с "кривыми" данными (по отношению к кривому коду) - не найдет никогда. Максимум, что можно посоветовать - так реорганизовать код, чтобы иметь шансы увидеть, из-за чего возникает ошибка. Например, проследить, чтобы чтобы: - никаких вложенных транзакций - никаких "молчаливых" обработчиков исключений (т.е. без вывода, или хотя бы накопления, адекватных сообщений) В идеале - чтобы вся значимая часть алгоритма обработки находилась между НачатьТранзакцию() попытка // // выполняется вся обработка // ЗафиксироватьТранзакцию() исключение сообщить(описаниеОшибки()); отменитьТранзакцию(); конецПопытки; и никаких попыток\исключений между ними не было, не говоря уже о транзакциях . А реорганизовав код - терпеливо ждать, когда ошибка проявится и сообщит о себе. И не успокаиваться, если она сама-собой не проявится. Значит, данные не вполне соответствуют кривизне алгоритма, и эта ненайденная мина обязательно когда-нибудь сработает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:55 |
|
||
|
7.7 СделатьНеПроведенным() - не работает
|
|||
|---|---|---|---|
|
#18+
pail Витал_t01 Думаю скорее всего дело в применении вложенных транзакций. ... и разбираться надо с транзакциями, а не с отдельными "несрабатывающими" методами. ... А реорганизовав код - терпеливо ждать, когда ошибка проявится и сообщит о себе. И не успокаиваться, если она сама-собой не проявится. Значит, данные не вполне соответствуют кривизне алгоритма, и эта ненайденная мина обязательно когда-нибудь сработает Совершенно с вами согласен! Вполне разумный совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 20:00 |
|
||
|
|

start [/forum/topic.php?fid=28&fpage=90&tid=1521665]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 425ms |

| 0 / 0 |
