for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Вопросы по 1С
  

Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 09:15:57
Мне надо синхронизировать 8.3 и 7.7
Только со стороны 8.3
Все работает, но...
Есть функция коннекта с 7.7

  
  Функция Соединение77() Экспорт   
  	//Создадим Com объект для подключения к 1С 77  
  	База77  = Новый COMObject("V77.Application");  
  	//Устанавливаем соединение    
  	_ConstПуть77 =  Константы._ConstПуть77.Получить();  
  	  
  	Открыта = База77.Initialize(База77.RMTrade,"/D " +_ConstПуть77+ " /N "+"Админ" + " /P "+"фывщк", "NO_SPLASH_SHOW");  
    
  	Возврат База77;  
  КонецФункции
Обращение к 77 может быть неоднократным.
И сейчас, каждый раз вызывается эта функция.
Соединение я не закрываю.
Как, где можно сохранить ссылку на это соединение?
(Ну и проверять, есть ли оно)
Наверное что то с видимостью переменных?
Как это организовать?

Название темы конечно не то)


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
ssa

Сообщений: 12358
Откуда: Москва
Дата: 29.03.16 09:34:54
1. Кроме 8.3 не плохо было указать в каком режиме это 8.3 запускается? ОФ? УФ? Толстый клиент? Тонкий? Фоновое задание? А от всего этого очень сильно зависят как раз области видимости.
2. Что толку от созерцания кода функции если интересует дальнейшая работа с результатом этой функции, а не процесс его получения?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 09:41:13
Ну код привел просто так)
1С:Предприятие 8.3 (8.3.7.2008)

Бухгалтерия предприятия, редакция 3.0 (3.0.43.152)

Тонкий клиент.


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
ssa

Сообщений: 12358
Откуда: Москва
Дата: 29.03.16 09:46:52
Остальное надо угадывать? Фраза про "интересует дальнейшая работа с результатом функции" ни на какие мысли не наталкивает? Надо все клещами тянуть?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 09:55:33
Чес слово, не понимаю, что непонятно...
Функция соединение, возвращает переменную База77.
Это ссылка на соединение.
Хотелось бы сохранить эту ссылку, и при следующем обращении, не вызывать функцию соединения, по новой, а использовать имеющееся.
Т.е делать сто то типа
  
  	Если  ЕСТЬNULL(База77) тогда   
  		Соединение77();  
  	конецесли;

Аналогия на фоксе
  
  public MyObj  
    
  if isnull(MyObj)  
  MyObj=creatobject(NeedObj)  
  endif

Если правильно понял вопрос


------------------




Исправлено: Аспид, 29.03.16 09:56
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
ssa

Сообщений: 12358
Откуда: Москва
Дата: 29.03.16 10:08:38
Аспид
Чес слово, не понимаю, что непонятно...
Оно и видно.
Цитата:
Функция соединение, возвращает переменную База77.
Это ссылка на соединение.
Кто бы мог подумать...
Цитата:
Если правильно понял вопрос
Неправильно. ГДЕ и КАК используется это соединение? В форме документа В форме обработки? В модуле документа? В модуле обработки? На сервере? На клиенте?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
pasha_usue

Сообщений: 3273
Откуда: Е-бург
Дата: 29.03.16 10:14:01
Куда функция возвращает? На сервер? На клиент?

А сама функция где вызывается? На сервере? На клиенте?

Между сервером и клиентом соединение передать нельзя. Значит, соединение должно жить там где создано. Если на клиенте, то храните в реквизите формы. А вот, если на сервере, тогда опять же два варианта. Если есть контекст формы, то тоже можно в реквизите формы. Если контекста формы нет, то тут надо дальше разбираться, что как и откуда у вас вызывается.

PS. А, и да. Выполнение на сервере прерывается работой клиента?
PPS. Еще стопитсот вопросов.



Исправлено: pasha_usue, 29.03.16 10:17
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 11:02:26
Цепочка такая.
Контрагенты.Форма элемента
  
  &НаСервере  
  Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)  
  	//Запись в МС и 77  
  	_WРаботаСMSSQL.СохранениеКонтрагента(ТекущийОбъект);
_WРаботаСMSSQL в общем модуле. И она уже вызывает функцию соединение.
pasha_usue
PS. А, и да. Выполнение на сервере прерывается работой клиента?
Я увы не понял вопроса(((

Для юзера все выглядит так:
Открывает справочник контрагентов. Заходит в конкретного котрагента, меняет, все сохраняется в 77.
Аналогично при добавлении нового.
Потом он может закрыть справочник, но не программу, а через какое то время, сделать такие же операции с другим котрагентом.

Надеюсь угадал теперь с ответом?


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
ssa

Сообщений: 12358
Откуда: Москва
Дата: 29.03.16 11:11:14
Аспид
Цепочка такая.
Контрагенты.Форма элемента
  
  &НаСервере  
  Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)  
  	//Запись в МС и 77  
  	_WРаботаСMSSQL.СохранениеКонтрагента(ТекущийОбъект);
_WРаботаСMSSQL в общем модуле. И она уже вызывает функцию соединение.
pasha_usue
PS. А, и да. Выполнение на сервере прерывается работой клиента?
Я увы не понял вопроса(((
То есть директива &НаСервере тебе ничего не говорит? Если так, то это очень плохо. Может срочно устранить сей пробел в знаниях? Ибо без понимания как раздеделены в 1С клиент и сервер ты не будешь понимать ответы на твои вопросы и наши вопросы.
Цитата:

Для юзера все выглядит так:
Открывает справочник контрагентов. Заходит в конкретного котрагента, меняет, все сохраняется в 77.
Аналогично при добавлении нового.
Потом он может закрыть справочник, но не программу, а через какое то время, сделать такие же операции с другим котрагентом.

Надеюсь угадал теперь с ответом?
Почти. Уточнени, такой механизм только в этом справочнике или и в других используется?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 11:19:47
ssa
такой механизм только в этом справочнике или и в других используется?
В настоящий момент только в этом.
Есть задумки и другие так же подтянуть.
Номенклатуру.

Смысл вопроса понял наверное.
Можно хранить где то, со справочником, а можно... по другому.

ssa
То есть директива &НаСервере тебе ничего не говорит?
Мое понимание очень мелко(((
Я представляю, что когда надо работать с данными, то это &НаСервере

Глубже... пока не доступно)


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
pasha_usue

Сообщений: 3273
Откуда: Е-бург
Дата: 29.03.16 11:23:40
Тогда сюда: http://kb.mista.ru/

Только надо еще обвязку делать: COM жил. COM жив. COM будет жить!
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
pasha_usue

Сообщений: 3273
Откуда: Е-бург
Дата: 29.03.16 11:29:26
Аспид
Смысл вопроса понял наверное.
Можно хранить где то, со справочником, а можно... по другому.
Нельзя хранить со справочником. Вам надо хранить не просто экземпляр объекта, а экземпляр объекта, который держит соединение, и все прочее, что за этим тянется. То-есть, экземпляр объекта должен продолжать жить в памяти сервера.

А сервер может что-то держать в своей памяти только то, что связано с конкретным сеансом. Все остальное он вытрет, рано или поздно. Обычно, сразу после очистки ссылки на объект.
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 11:31:25
pasha_usue
Тогда сюда: http://kb.mista.ru/
Только надо еще обвязку делать: COM жил. COM жив. COM будет жить!

Только глянул на название - прямо оно)))
А гугл... неправильно ищет))))


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 15:50:17
pasha_usue
Тогда сюда: kb.mista.ru
Я споткнулся.
Не пойму, какого типа должен быть
ПараметрыСеанса.АдресCOMОбъекта
на строке
ПараметрыСеанса.АдресCOMОбъекта=ПоместитьВоВременноеХранилище(База77,Новый УникальныйИдентификатор());
Если ЛюбаяСсылка - переданное значение не может быть помещено во временное хранилище.
Пробовал другие - то же.

Какой же тип выбрать?

Вот что накопал
Часть текста скрыта
В "1С:Предприятии 8.3" при помещении во временное хранилище значений, сериализация которых не поддерживается (например, ДокументОбъект.<Имя документа>, СправочникОбъект.<Имя справочника> и пр.), возникает ошибка "Переданное значение не может быть помещено во временное хранилище".

Для устранения несовместимости необходимо:

Выявить все места помещения значений во временное хранилище (поиском метода глобального контекста ПоместитьВоВременноеХранилище);
Проверить, что возможна сериализация типов значений объектов, помещаемых во временное хранилище. Для этого необходимо свериться с синтакс-помощником, убедившись, что в группе "Доступность" явно указана фраза "Сериализуется". При этом следует отличать сериализацию от XDTO-сериализации и XML-сериализации. Например, для типов СправочникОбъект.<Имя справочника> сериализация не поддерживается, хотя поддерживается XDTO-сериализация и XML-сериализация.
Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.


И как же быть? Получается способ не рабочий?
Сомневаюсь в возможности сериализации сом объекта))))


------------------




Исправлено: Аспид, 29.03.16 15:58
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
ssa

Сообщений: 12358
Откуда: Москва
Дата: 29.03.16 16:00:16
Аспид
pasha_usue
Тогда сюда: kb.mista.ru
Я споткнулся.
Не пойму, какого типа должен быть
ПараметрыСеанса.АдресCOMОбъекта
на строке
ПараметрыСеанса.АдресCOMОбъекта=ПоместитьВоВременноеХранилище(База77,Новый УникальныйИдентификатор());
Если ЛюбаяСсылка - переданное значение не может быть помещено во временное хранилище.
Пробовал другие - то же.

Какой же тип выбрать?
Никакой. Ты где в коде с мисты увидел ПараметрыСеанса? Думаешь, если бы можно было вот так легко адрес процесса в памяти поместить в параметры сеанса народ бы стал извращаться с временным хранилищем?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 29.03.16 16:33:19
Да ошибся в начале сообщения.
ПоместитьВоВременноеХранилище не работает.
Что и обозначил позднее.
Аспид
Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.

Т.е. изначальный вопрос остался.

В инете накопал, как сохранить на клиенте, на форме.
Не вижу смысла...


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Foxtrot

Сообщений: 3401
Откуда: Куда:
Дата: 30.03.16 12:59:54
самое простое наверное просто объявить глобальную переменную. хотя зло канешна


------------------
P.S. будете проходить мимо, не стесняйтесь, проходите
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
pasha_usue

Сообщений: 3273
Откуда: Е-бург
Дата: 30.03.16 13:41:28
Foxtrot
самое простое наверное просто объявить глобальную переменную. хотя зло канешна
Можно не глобальную. Можно локальную для общего модуля, который определен для повторного использования на время сеанса.

PS. Обсуждение с 40-ой записи: http://www.forum.mista.ru



Исправлено: pasha_usue, 30.03.16 13:45
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
Аспид
Автор

Сообщений: 3353
Откуда: Москва
Дата: 30.03.16 13:56:11
Foxtrot
самое простое наверное просто объявить глобальную переменную. хотя зло канешна
Да не вижу в таком контексте применение паблика зла.
Главное не злоупотреблять)))

Но вот где и как ее объявить?
Я настолько несведущ... (((

Плачь


------------------
Ratings: 0 negative/0 positive

Re: Сохранение соединения 8.3 с 7.7
pasha_usue

Сообщений: 3273
Откуда: Е-бург
Дата: 30.03.16 14:13:31
Аспид
Что за фигня? Или только так кажется, и в этом есть какой то смысл.
Есть справочник КонтактныеЛица
Присваиваю Владелец (и ведь подсказка это поле выдает) а он фига, нету говорит.
С трудом нашел, что в данном случае, не владелец, а ОбъектВладелец.
Это зачем? Объекты, вроде как с одним интефейсом, какой то смысл есть?
"Владелец" это предопределенный реквизит. Он обеспечивает специальную фичу конфигурации для создания элементов справочника подчиненных элементам другого справочника (и не только).

Если надо создать свой реквизит, который содержит некоторую ссылку, то назвать ее именем предопределенного реквизита нельзя. Поэтому, в справочнике может присутствовать как реквизит "ОбъектВладелец" (или как хочешь названный), и предопределенный реквизит "Владелец".
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 7 Божья_коровка  (Гостей: 6)

19.10.2019 00:18:51 exec: 0.11
Mem: 1.471 Mb

© 2000-2019 Fox Club 
Яндекс.Метрика