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

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

Синхронизация Контрагентов и подчиненных справочников 8.3 с 7.7
Аспид

Сообщений: 3338
Откуда: Москва
Дата: 31.03.16 14:40:53
Синхронизация Контрагентов и подчиненных справочников 8.3 с 7.7

1С:Предприятие 8.3 (8.3.7.2008)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.155)
УФ. Тонкий клиент.

Задача заполнить все данные по контрагенту из 1С 7.7.
А так же, при "Записать" передать данные в 7.7

При передаче в 7.7, когда передаю полностью контрагента, со всеми сопутствующими справочниками, все ОК.
Но при вводе нового договора, надо сохранить договор, а потом сохранить контрагента.
Только тогда договор попадет в 7.7
Решил, по аналогии с сохранением контрагента, сохранять договор.
Использую для этого ДоговорыКонтрагенты.ФормаЭлемента (по аналогии с контрагентом)
И тут тупо, не нахожу события
  
  &НаСервере  
  Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Я наивный описал его в области
#Область ОбработчикиСобытийФормы
Нет. Не попадет туда.

Просто не нашел нужного события.
(Нашел описание последовательности событий при закрытии формы, и там оно есть.)
Можно как то создать, зарегистрировать событие, или не тем путем иду?


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

Re: Синхронизация Контрагентов и подчиненных справочников 8.3 с 7.7
pasha_usue
Автор

Сообщений: 3253
Откуда: Е-бург
Дата: 31.03.16 15:10:24
Свойства корневого элемента формы ("Форма"):
[attachment 24002 form.png]

Если обработчик события не назначен, достаточно нажать на лупу, обработчик события будет создан автоматически. Если предварительно задать название обработчика события, то он создастся с заданным названием. Здесь же можно поменять процедуру-обработчик события.
Ratings: 0 negative/0 positive

Re: Синхронизация Контрагентов и подчиненных справочников 8.3 с 7.7
pasha_usue
Автор

Сообщений: 3253
Откуда: Е-бург
Дата: 31.03.16 15:12:39
А действительно есть необходимость переносить изменения минута в минуту? Почему бы не настроить регламентное задание раз в час? Я бы регистрировал факт изменения объектов в своем плане обмена, а раз в час запускал обмен. Правила обмена подготовил бы в конвертации.

PS. Я больше скажу. А если семёрочная база была недоступна и изменения не сохранились, как вы их переносить собираетесь?



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

Re: Синхронизация Контрагентов и подчиненных справочников 8.3 с 7.7
Аспид

Сообщений: 3338
Откуда: Москва
Дата: 31.03.16 15:35:58
Спасибо. так и знал что где то назначается) На VS похоже, не догадался)

pasha_usue
Правила обмена подготовил бы в конвертации.

Интересное предложение.
Ну доступность 7.7 100%
ну пусть 99.9999% )))
Она рабочая, с ней работает все и всё.

Тем не менее...
С конвертации начинал.
Закончил конкретно в мае прошлого года.
Тогда и преренес контрагентов.

Теперь открыл. Ничего не помню(
Думал ручками быстрее и понятнее будет.

Минута в минуту не нужно) Но получится.
Не сработает, при любом сохранении в 83 контрагента все перенесется.

И наверное... дело в том, что разбираться с конвертацией, очень не просто.
Для незнающего. Надо конечно.
Но, написав свой обмен, решая конкретную задачу, хоть немного поднатаскаюсь в 8.3

Ну и обнаглею, еще вопрос.

Из 7.7 все получаю. А при заполнении, возникают трудности.
Собственно есть 3 починенных справочник
1. Договоры
2. БанковскиеСчета
3. КонтактныеЛица.

И у каждого свои особенности.

Договоры заполняются на Ура.
Про КонтактныеЛица упоминал. Удивляет вместо владелец - ОбъектВладелец.
Вот у Радченко вычитал
"Если справочник подчинен другому
объекту конфигурации, у него будет доступен реквизит Владелец."
Не понятно, зачем. Ну да бог с ним)

Самое непонятное:
Пытаюсь заполнить БанковскиеСчета аналогично Договорам.
И ничего не выходит(
Какой то он другой справочник)))

  
  Процедура РасчетныйСчетИз77(ТекущийОбъект,Контрагенты77,РС77) Экспорт  
  	РС77.ИспользоватьВладельца(Контрагенты77.ТекущийЭлемент());  
  	РС77.ВыбратьЭлементы();  
  	  
  	Ссылка = ТекущийОбъект.Ссылка;	  
  	РС83 = Справочники.БанковскиеСчета;  
  	Пусто = РС83.ПустаяСсылка();  
  	Пока РС77.ПолучитьЭлемент(1)  Цикл  
  		НомРС77=РС77.ТекущийЭлемент().Код;    
  		НайденнаяСсылка = РС83.НайтиПоКоду(НомРС77,,,Ссылка);   
  		Если НайденнаяСсылка = Пусто Тогда  
  			РС83.СоздатьЭлемент();   //впечатление что это не тот метод  
  			//РС83.Владелец		=	Ссылка;  
  			//РС83.код			=	РС77.код;  
  			РС83.НомерСчета	=	РС77.Номер;  
  			 //Занести банк  
  			Банк77=РС77.БанкОрганизации.Наименование;  
  			Банк83=Справочники.Банки;  
  			//ПустойБанк=Банк83.ПустаяСсылка();  
  			НБанк=Банк83.НайтиПоНаименованию(Банк77);  
  			Если НБанк =0 тогда  
  				Банк83.СоздатьЭлемент();  
  				Банк83.Наименование=Банк77;  
  				Банк83.записать();  
  				НужныйБанк=Банк83.Ссылка  
  			Иначе  
  			 	НужныйБанк=НБанк.Ссылка;  
  			КонецЕсли;  
  			РС83.Банк=НужныйБанк;  
  			   
  			РС83.записать();  
  			Контрагенты83=Ссылка.ПолучитьОбъект;  
  			Контрагенты83.ОсновнойБанковскийСчет=РС83.Ссылка;  
  		Иначе   
  			  
  		КонецЕсли  
  	КонецЦикла  
  КонецПроцедуры


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

Re: Синхронизация Контрагентов и подчиненных справочников 8.3 с 7.7
pasha_usue
Автор

Сообщений: 3253
Откуда: Е-бург
Дата: 01.04.16 07:25:58
Да всё тот метод.
  
  НовыйРС = РС83.СоздатьЭлемент();   //впечатление что это не тот метод    
  НовыйРС.Владелец = Ссылка;    
  НовыйРС.код = РС77.код;    
  НовыйРС.НомерСчета = РС77.Номер;  
  НовыйРС.Записать();

Синтакс-помощник вызывается Ctrl+F1 на методе в редакторе модулей. Там очень хорошие примеры.

В семёрке не создавался новый экземпляр объекта, ты продолжал работать с объектом справочника. В восьмерке сделано чуть более человечески. Метод справочника СоздатьЭлемент() возвращает объект элемента справочника, а уже с ним работаешь.

Аспид
Контрагенты83=Ссылка.ПолучитьОбъект;
Контрагенты83.ОсновнойБанковскийСчет=РС83.Ссылка;
Ужос-ужос. Зачем из ссылки получать объект, а возвращать из этого объекта ссылку? Тем более, ПолучитьОбъект() это метод. Он должен быть со скобочками.

Аспид
Если НайденнаяСсылка = Пусто Тогда
Если НБанк =0 тогда
Нее. Это опять семерочный синтаксис. Метод вернет значение ПустаяСсылка(), вам надо проверять Если Не ЗначениеЗаполнено(НБанк) Тогда

Аспид
НБанк=Банк83.НайтиПоНаименованию(Банк77);
Банк лучше искать по коду. В бухгалтерии 3.0 в коде банка зашит БИК - он уникален. А в семёрке сами посмотрите, БИК в код зашит, или отдельным реквизитом. Там в разных конфигурациях по-разному было.



Исправлено: pasha_usue, 01.04.16 08:11
Ratings: 0 negative/0 positive



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

On-line: 5 Taran  (Гостей: 4)

22.09.2019 23:16:52 exec: 0.11
Mem: 1.174 Mb

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