Имя: Пароль:
1C
1С v8
Записать файлик на сервере
0 Мэс33
 
10.07.13
14:03
Други, подскажите.

Мне надо создать подписку на событие "Проведение документа", при наступлении которого создастся файлик локально на сервере.
Пример:
Источник: "ДокументОбъект.ОперацияБух".
Событие: "ОбработкаПроведения".

Как сделать, чтобы это происходило на сервере?
Достаточно ли будет указать в обработчике #НаСервере?
1 Конфигуратор1с
 
10.07.13
14:05
(0) эмм. Даже не знаю что тебе сказать. УФ или обычные?
2 Мэс33
 
10.07.13
14:06
(1) не УФ.
3 ИС-2
 
naïve
10.07.13
14:14
(0) думаю, да.
Но за чем? Что мешает указать сетевой путь записи \\ServachуK\Papka
4 Мэс33
 
10.07.13
14:15
(3) Надо тогда всем пользователям давать доступ к той папке.
5 Jonny_Khomich
 
10.07.13
14:16
(4) тогда лучше через регламент
6 Конфигуратор1с
 
10.07.13
14:33
(2) тогда по идее нет. В толстом он тебе запишет на клиенте по идее. Поэтому лучше (5)
7 Конфигуратор1с
 
10.07.13
14:34
а вообще что нужно? не очень хорошая идея записывать файлы при проведении?
8 Поросенок Петр
 
10.07.13
14:40
Не очень хорошая слишком мягко сказано. Х*вая напрочь.
9 Мэс33
 
10.07.13
14:45
(8) В общем, мне нужно передать информацию о контрагенте в другую систему при определенном случае - после проведения документа.
Разрабы другой системы готовы принимать какой-нибудь файл (txt xml), но не готовы создавать к примеру веб-сервис.

Что можно предложить? Я готов формировать этот файл, но хотелось, чтобы создавался в одно месте. Документов этих мало - около 1200 за год создается. Но информация о контрагенте, нужна всегда актуальная.
10 Мэс33
 
10.07.13
14:45
Че-то с запятыми я перемудрил. (9)
11 Конфигуратор1с
 
10.07.13
14:52
(9) Лучше что бы передачу данных контролировал юзверь. Потому что если что крайним будет разработчик 1с). Поэтому делается все проще - формочка для ответственного юзверя. Он нажимает заполнить и передать.
12 Мэс33
 
10.07.13
14:54
(11) Отлично, пусть даже будет кнопка, как лучше передать? Юзер может быть терминальный или обычный толстый клиент.
13 zladenuw
 
10.07.13
14:54
(9) так если после проведение. то делай фоновое задание. которая раз в 5 минут смотрит проведенные реализации и выгружает что тебе нужно
14 Мэс33
 
10.07.13
14:56
(13) неужели без этого нельзя? Просто запустить код на сервере от имени сервера, который проделает что нужно?
15 Philix
 
10.07.13
14:59
(14) Можно. Делай через регламентное задание и план обмена с ручной регистрацией в него. При проведении документа - регистрируешь контрагента в плане обмена, а регламентное задание на сервере выгружает данные и удаляет регистрации из плана обмена.
16 Мэс33
 
11.07.13
14:27
На сервере в консоли стоит галочка напротив: "Блокировка регламентных заданий включена".

С этой галочкой никак?
17 H A D G E H O G s
 
11.07.13
14:30
Писец.
Ну вызови процедуру серверного ОМ, в чем проблема?
18 H A D G E H O G s
 
11.07.13
14:31
Только там контролируй
#Если Сервер Тогда
.. алгоритм выгрузки
#КонецЕсли

А то запустите под файловой - ничего хорошего не будет.
19 Мэс33
 
11.07.13
14:37
(17) что это такое ОМ?
20 H A D G E H O G s
 
11.07.13
14:39
(19) Общий модуль
21 Мэс33
 
11.07.13
14:42
Давайте по порядку.
Я создаю общий модуль, назовем ее "СерверныеПроцедуры".
Ставлю галочки : "Сервер", "ВызовСервера" - верно?
Далее, создаю подписку на событие - проведение документа.
И привязываю к своей процедурке в ОМ "СерверныеПроцедуры"

Что то вроде:
Процедура МояПроцедура() Экспорт
// здесь код вида
#Если Сервер Тогда
// тут некий алгоритм
КонецЕсли
КонецПроцедуры


-- верно?
22 H A D G E H O G s
 
11.07.13
14:45
Да
23 H A D G E H O G s
 
11.07.13
14:46
(21) Прописку на событие (Процедуру) прописывай в другом Клиент-Серверном ОМ.
24 Мэс33
 
11.07.13
14:47
Так, получил ошибку "Попытка передачи с клиента на сервер мутабельного значения ..."
25 H A D G E H O G s
 
11.07.13
14:48
(24) Не передавай с клиента на сервер (и обратно) мутабельные значения.
26 H A D G E H O G s
 
11.07.13
14:51
http://infostart.ru/public/123256/

У тебя 2 или 3 вариант решения.
Оптимальней 3 -ий, но можно и 2-ой.
А можно собрать только те данные документа, которые нужны и запихать в структуру и отправить в параметр серверной функции.
27 Мэс33
 
11.07.13
14:58
Все, разобрался.
Заработало. Спасибо.
28 hhhh
 
11.07.13
15:44
(18) файловая ведь воспринимает #Если Сервер как комментарий. Поэтому всё равно запустится.
29 H A D G E H O G s
 
11.07.13
15:51
(28) Вот жеж. Не знал.
30 Мэс33
 
11.07.13
16:28
(29) а я вообще не в курсе был.
Независимо от того, куда вы едете — это в гору и против ветра!