Имя: Пароль:
1C
1С v8
обработка в файловом варианте работает а в серверном нет. Почему?
0 werta2007
 
02.03.16
23:36
Доброго времени суток всем.
Недавно перешли на бухгалтерию Бухгалтерия предприятия, редакция 3.0 (3.0.43.123). История следующая. Была на бух 2.0 внешняя обработка(я ее писала). После перехода на бух 3.0 ее встроили в конфигурацию и запускается только под толстым клиентом. Переделала обработку, но в файловом варианте, оттестировала, все ок. Поставили ее на серверную базу и тут полезли ошибки, типа:
Переменная не определена (БухгалтерскийУчетПереопределяемый)
Как не определена, если это общий модуль?
Что не так?
1 Xapac
 
02.03.16
23:37
(0)кидайте обработку
2 werta2007
 
02.03.16
23:39
куда? и смысл? если там еще внутренние изменения конфигурации, и тащит она данные из самописной торговой базы, к которой я не имею никакого отнощения.
3 werta2007
 
02.03.16
23:40
смысл обработки, вытащить данные из SQL-ой базы и разложить в соответстующие документы.
4 werta2007
 
02.03.16
23:43
я сразу скажу, что 8.3 только открыла, до этого писала на 8.2, и то по минимуму старалась что-то дописывать.
5 werta2007
 
02.03.16
23:53
Переменная не определена (БухгалтерскийУчетПереопределяемый)
                        СчетаУчета = <<?>>БухгалтерскийУчетПереопределяемый.ПолучитьСчетаУчетаНоменклатуры(Организация, НовСТР.Номенклатура, Склад);
еременная не определена (ОбщегоНазначенияБП)
Если <<?>>ОбщегоНазначенияБП.ЕстьТабЧастьДокумента("Товары", ДокументБазы.Метаданные()) = Истина Тогда

я все проверила БухгалтерскийУчетПереопределяемый  и ОбщегоНазначенияБП это общие модули, ПолучитьСчетаУчетаНоменклатуры и ЕстьТабЧастьДокумента тоже существуют в соответствующих модулях.
Почему эта ошибка в серверной базе? в файловой все работает прекрасно? Что нужно чтобы избавиться от этих ошибок?
6 Garykom
 
гуру
02.03.16
23:56
освойте уже &НаКлиенте и &НаСервере
7 werta2007
 
03.03.16
00:07
(6)да сижу разбираюсь и с этим.
Вопрос: я прочитала, что по-умолчанию все происходит на сервер, если конкретная директива не указана. Следовательно эти общие модули, которые выходит ошибка выполняются на  клиенте, и следовательно и мои все функции нужно уложить на клиент? я правильно поняла?
8 pessok
 
03.03.16
00:11
(7) если тыкнуть правой кнопкой на модуль и открыть палитру свойств, то там написано, откуда модуль может вызываться и где работать.
9 werta2007
 
03.03.16
00:24
спасибо огромное!!! кажется получается!!!
10 werta2007
 
03.03.16
00:55
ха! стала неактивной кнопка, по которой происходит загрузка документов. Флаги доступности не изменяла. Может ли это быть связано, что процедуру этой кнопки отправила на сервер?
как поступить в данном случае?
11 Garykom
 
гуру
03.03.16
01:47
(10) сделать процедуру кнопки на клиенте и из нее вызывать серверную

это классика, клиент передает на сервер некие данные, сервер обрабатывает и возвращает результат на клиент

надо было 1С принудительно разнести серверные и клиентские модуля код
а не эти директивы, многие путаются
12 ДенисЧ
 
03.03.16
06:39
(10) сделать клиентскую обработку кнопки...
13 Провинциальный 1сник
 
03.03.16
07:18
(11) "надо было 1С принудительно разнести серверные и клиентские модуля код а не эти директивы, многие путаются"
Эти директивы - прогиб под веб-программирование. Там тоже серверный пхп и клиентский джаваскрипт в тексте страниц вперемешку. Хотя в рамках парадигмы 1с действительно логинчее было бы разделять модули на клиентские и серверные.
14 werta2007
 
03.03.16
07:35
ДОБРОЕ УТРО.
Да я поняла, но как же быть, если в тексте клиентской кнопки вызывается общий модуль или серверная функция или процедура?
15 Провинциальный 1сник
 
03.03.16
07:40
(14) На клиенте вызывается клиентская процедура, из неё вызывается серверная.
16 werta2007
 
03.03.16
07:46
да. буду по чайниковски))
я проставила &НаКлиенте перед процедурой кнопки, но кнопка вызывает серверную процедуру и следовательно выдает ошибку
Ошибка инициализации модуля: Обработка.ОбменСБисСК.Форма.Форма.Форма
по причине:
{Обработка.ОбменСБисСК.Форма.Форма.Форма(60,2)}: Процедура или функция с указанным именем не определена (ОбработатьДерево)
<<?>>ОбработатьДерево (1);
17 hhhh
 
03.03.16
08:07
ну посмотрите, может на форме нет этой процедуры?
18 Drac0
 
03.03.16
08:10
(16) Ты, похоже, уже из серверной процедуры пытаешься вызвать клиентский метод. Не надо так.
19 John83
 
03.03.16
08:21
БухгалтерскийУчетПереопределяемый случаем не глобальная?
20 John83
 
03.03.16
08:22
ан нет
21 Мимохожий Однако
 
03.03.16
08:24
Иногда помогает перенос процедур из общих модулей в свою обработку. Совет для тех, кто не хочет разбираться с нюансами.
22 werta2007
 
03.03.16
10:50
(17) нет, из клиента серверную
&НаКлиенте
Процедура КоманднаяПанель3Обновить(Кнопка)
    ОбработатьДерево (1);
КонецПроцедуры

&НаСервере
Процедура ОбработатьДерево(КоличествоДействий)
...
конецпроцедуры
23 Garykom
 
гуру
03.03.16
10:53
(22) внутри ОбработатьДерево что вызывается? оттуда клиента уже низзя, только сервер можно вызывать
24 werta2007
 
03.03.16
11:07
(23) из ОбработатьДерево уже начинают вызываться общие модули типа  БухгалтерскийУчетПереопределяемый, поэтому я переде этой процедурой уже поставила &НаСервере.
25 Garykom
 
гуру
03.03.16
11:09
(24) а "БухгалтерскийУчетПереопределяемый" это серверный код? а "Экспорт" стоит?
26 werta2007
 
03.03.16
11:10
еще вопрос: я запускаюсь отладчиком Толстый клиент(управляемое приложение):Начать отладку.
Это толстый клиент или все-таки управляемые формы, тк. я не стала переписывать свою обработку под управляемые формы.
27 werta2007
 
03.03.16
11:13
БухгалтерскийУчетПереопределяемый это общий модуль конфигурации. Посмотрела, он может вызываться как с сервера, так и внешнее соединение. в процедурах используемых из него, например Функция ПолучитьСчетаРасчетовСКонтрагентом(Знач Организация, Знач Контрагент, Знач Договор) Экспорт
как видим экспорт стоит
28 werta2007
 
03.03.16
11:36
нашла как можно запуститься в Толстый клиент(обычное приложение). Но результат тот же
29 Garykom
 
гуру
03.03.16
11:41
30 werta2007
 
03.03.16
11:53
Спасибо огромное за ссылки.
Разобралась. Проблема была оказывается в режиме в котором я запускалась. подрядчик сказал в толстом клиенте, но не уточнил, что нужно в обычном приложении. Зашла в конфигуратор, установила сервис- параметры - управляемое и обычное приложение.
Потом вернула обработку в первоначальное сотояние, без &НаКлиенте и &НаСервере, запустилась и УРА!!!
Спасибо всем за поддержку!!!
А на толкнулась я на мысль вот здесь Старые поделки для 8.2 запустить на 8.3