|
Проведение по COM | ☑ | ||
---|---|---|---|---|
0
Patrio_
O_Muerte 19.12.13
✎
11:59
|
Выручайте други.
Создаю документ по com из базы 1С Отель (Гостиничные технологии), в базе 1С Ресторан (Рарус). Запись проходит нормально. Проведение вылетает с ошибкой Процедура или функция с указанным именем не определена "обПолучитьЦветНех". Тщательное изучение конфы Ресторана не дало каких нибудь толков. данная процедура имеется в общих модулях с признаком экспорт и используется в иных модулях, то ест ьне в этом документе. Я пытался записать разными способами: 1. Сразу при создании и заполнении реквизитов документа. 2. Сначала записываем документ, потом проводим. 3. Записываем документ, затем ищем по гуиду и пытаемся провести. Ни один из этих способов не дал результата - везде эта ошибка. Други, как найти эту процедуру? |
|||
1
Sammo
19.12.13
✎
12:01
|
Галочка "Внешнее соединение" у модуля стоит?
|
|||
2
selenat
19.12.13
✎
12:01
|
(0) что там с галочками в свойствах обшего модуля насчет внешнего подключения?
|
|||
3
selenat
19.12.13
✎
12:02
|
(1) ты быстр :)
|
|||
4
Patrio_
O_Muerte 19.12.13
✎
12:04
|
Слов не хватает.
Не стоит, но конфа на поддержке. Есть варианты без изменения конфы? |
|||
5
Patrio_
O_Muerte 19.12.13
✎
12:04
|
Пардон, не на поддержке, а с замочком
|
|||
6
Patrio_
O_Muerte 19.12.13
✎
12:04
|
Не хочу включать возможность изменения
|
|||
7
selenat
19.12.13
✎
12:05
|
(4) полагаю, что нет. Придется снимать.
|
|||
8
ptiz
19.12.13
✎
12:06
|
(6) Иначе - переносить весь расчет и запись движений в вызывающую обработку.
|
|||
9
Defender aka LINN
19.12.13
✎
12:08
|
(8) Проще уже в режиме клиентского соединения просто подключаться.
|
|||
10
selenat
19.12.13
✎
12:09
|
(8) не поможет. Конфликт идет по процедурам, которые даже не используются в модуле проведения этого документа. Грубо говоря процедуры хоть и не используются, должны быть доступны в контексте исполнения. А программа их не находит и ругается.
|
|||
11
selenat
19.12.13
✎
12:10
|
Возникла мысль, что можно сделать свой модуль с галочкой внешнего соединения и процедурами вызова всех процедур того модуля, но скорее всего тоже не прохляет.
|
|||
12
Apokalipsec
19.12.13
✎
12:13
|
а через V82.Application не создает тоже?
|
|||
13
Patrio_
O_Muerte 19.12.13
✎
12:19
|
(12)Не пробовал, у меня времени нет переделывать.
Буду включать возможность изменения и ставить галочку. |
|||
14
Patrio_
O_Muerte 19.12.13
✎
12:33
|
Хм, включил галочку внешнее соединение, все равно та же ошибка.
|
|||
15
selenat
19.12.13
✎
13:05
|
(14) ругается на ту же процедуру или какую-то другую?
|
|||
16
Patrio_
O_Muerte 19.12.13
✎
13:33
|
Та же.
|
|||
17
Patrio_
O_Muerte 19.12.13
✎
13:35
|
Базы обе файловые
|
|||
18
selenat
19.12.13
✎
13:37
|
(16) возьми копию базы и проставь галочки "внешнее соединение" на все общие модули. Проверь, уйдет ли ошибка. По ходу еще что-то тянется.
|
|||
19
Serginio1
19.12.13
✎
13:51
|
Установи Сервис\Параметры\МодулиПроверка
Режим проверки поставь галку Внешнее соединение и сделай проверку модуля или проверку модулей |
|||
20
Patrio_
O_Muerte 19.12.13
✎
13:52
|
Запустил трассу при проведении документа, галочки ВнешнееСоединение стоят у всех модулей, которые используются, кроме двух - УправлениеДиалогом и ЗащищенныеФункции.
Защищенным функциям нет возможности установит этот признак. Управление диалогом я признак установил, но теперь иная ошибка: Конструктор не найден. Валиться на этой строке. Кнопка = КнопкиПодменюДействия.Вставить(0,"ЗаменитьНаОбъект",ТипКнопкиКоманднойПанели.Действие,"Заменить на другой объект",Новый Действие("ДополнительныеДействияФормы")); При проведении отладчиком сюда не заходит. |
|||
21
Patrio_
O_Muerte 19.12.13
✎
13:56
|
(19)Сделал, несколько ошибок, в том числе и та которую я указал.
|
|||
22
Serginio1
19.12.13
✎
13:59
|
(21) Ну значит либо галка на модуле ВнешнееСоединение не стоит либо проседура в блоке #Если Клиент Тогда и прочее
|
|||
23
selenat
19.12.13
✎
14:04
|
(20) ты уверен, что подключаешься именно к той базе, где проставил свои галочки внешнего соединения? Что-то меня терзают смутные сомнения, что ты куда-то не туда коннектишься.
|
|||
24
Patrio_
O_Muerte 19.12.13
✎
14:15
|
(23)База именно та.
(22)Галочка стоит, блока #Если Клиент нету. Скорее всего связано с тем, что тут каким то образом вызываются методы, которые предназначены для исполнения над элементами формы, и соответственно не работают при программном вызове. |
|||
25
selenat
19.12.13
✎
14:18
|
(24) на всякий случай уточню. Галочки стоят в модулях той базы К КОТОРОЙ подключаешься. Так?
Если базы у тебя файловые то на инструкции препроцессору ( #Если Клиент) внимания можешь не обращать. |
|||
26
Serginio1
19.12.13
✎
14:20
|
(24) угу
|
|||
27
selenat
19.12.13
✎
14:20
|
(24) "Скорее всего связано с тем, что тут каким то образом вызываются методы, которые предназначены для исполнения над элементами формы, и соответственно не работают при программном вызове."
Так ты же говоришь, что процедуры эти не вызываются при проведении документа. ИМХО не должно это быть проблемой. ВажнО наличие всех необходимых процедур и функций, которые должны быть доступны для использования по контексту. |
|||
28
Serginio1
19.12.13
✎
14:21
|
(24) Вот их и нужно поместить в блок #Если Клиент
|
|||
29
selenat
19.12.13
✎
14:29
|
(28) насколько мне известно, для файловых баз это совершенно параллельно,эти инструкции работают только в клиент-серверной базе.
|
|||
30
Patrio_
O_Muerte 19.12.13
✎
14:33
|
(25)Да, галочки я проверял именно у той базы, к которой я подключаюсь.
|
|||
31
selenat
19.12.13
✎
14:50
|
(30) у меня идеи закончились. Буду следить за предложениями других. Я бы кстати обратился в фирму РАРУС по поводу этой проблемы. Как минимум ради того, чтобы они пересмотрели в следующих своих релизах регулировку свойства "внешнее соединение" для своих общих модулей. Не исключено, что корректная работа по ком потребует некоторого другого расположения их процедур в общих модулях. А поскольку требуется сохранение поддержки при обновлении, то эта проблема должна решаться централизованно самим разрабочиком.
|
|||
32
Serginio1
19.12.13
✎
15:12
|
(29) Но вообще то код может выполняться из Внешнего соединения и вэб сервисов. Так что должен использоваться что бы скрыть вызов процедур предназначенных для декстопов например предупреждение итд.
|
|||
33
selenat
19.12.13
✎
21:41
|
(32) С вэб сервисами дела не имел и до сих пор работаю на платформе 8.1. Так что допускаю, что я сильно отстал от жизни и. Те чего-то не понимаю. Тем не менее у меня все равно большие сомнения в том, что "#Если Клиент Тогда" имеет хоть какое-то значение в файловой базе.
|
|||
34
Kvestin
20.12.13
✎
10:36
|
У меня была подобная проблема и тоже с конфигурацией РАРУС (только CRM).
Делай так: Добавляешь в конфигурацию, к которой подключаешься модуль с галками [Сервер] и [Вызов сервера] (других НЕ СТАВИТЬ). В нем пишешь процедуру, в которой непосредственно вызывается проведение документа (...Записать(РежимЗаписиДокумента.Проведение)). Все. Через COM вызываешь эту процедуру и все будет работать. Я вообще добавил в этот модуль процедуру ВыполнитьПроизвольныйКод(..), но это дыра в безопасности, поэтому советовать подобное решение не буду. |
|||
35
selenat
20.12.13
✎
10:45
|
(34) хорошая идея. Должно сработать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |