Создание документа 1С77 из 1С8 используя внешние источники данных #767730


#0 by woha
Помогите, пожалуйста, с созданием документа 1С77 из базы 1С8 не используя OLE. Таблицы базы 1С77 подключены к 1С8 как внешние источники данных. Сложность в том, что за документ отвечают три таблицы (общий журнал документов, таблица шапки и табличной части). Спасибо.
#1 by vip03
в чем сложность? 1. пишешь в журнал. 2. пишешь заголовок документа. 3. пишешь ТЧ документа.
#2 by VladZ
Вcемирный конгресс врачей. На трибуне американский врач: - Мы научились лечить СПИД! Аплодисменты, крики... На трибуне японский врач: - Мы научились предотвращать инфаркты! Крики, аплодисменты На трибуне русский врач: - А мы научились удалять гланды! В зале недоумении, шум. Русский продолжает: - Через ж0пу. Автогеном...
#3 by VladZ
Варианты решений: 1. В глобальном модуле 7.7 делаем глобальную процедуру формирования нужных документов по нужным параметрам. Через Оле запускаем и формируем. Получается, что на стороне 8ки будет только запуск (ну и параметры какие-то нужно передать). Само формирование будет на стороне 7.7. 2. Если религия не позволяет использовать Оле: делаем промежуточную базу данных (допустим на SQL). Из 8ки туда пишем. На стороне 7.7 периодически запускаем робота и формируем нужные документы по данным нашей новой БД.  И волки сыты и в колодец никто не наплевал! :)
#4 by PuhUfa
Зачем лишнюю базу? можно просто xml выгружать а 77 будет ее всасывать потом
#5 by VladZ
Можно и так
#6 by Rie
Сложность будет в п. 1 "пишешь в журнал".
#7 by Mikeware
а что, внешние источники данных научились и писать? не знал.... да и тут сложности нет - залочил журнал, нашел максимальный ид по своему узлу распределенки (ну, или вызвал хранимку), записал хотя б пустышку с этим идом, разлочил. Ну а потом - пиши во все три таблицы
#8 by HawkEye
пожалуйста, пиши еще.
#9 by woha
можно "да и тут сложности нет - залочил журнал, нашел максимальный ид по своему узлу распределенки (ну, или вызвал хранимку), записал хотя б пустышку с этим идом, разлочил. Ну а потом - пиши во все три таблицы" поподробней?
#10 by Rie
Те, для кого это не сложно - не задают подобных вопросов.
#11 by Rie
Что именно непонятно? У документов есть первичный ключ IDDOC. Его надо создать. Уникальный. И такой, чтобы при виде его 1С не пришла в ужас. Данные документов хранятся в трёх таблицах - _1SJOURN, DH*, DT*.
#12 by Rie
Для РИБ надо ещё записать документ для выгрузки (если это надо).
#13 by Rie
Другое непонятно. Есть ведь штатные способы интеграции - OLE, КД и т.д. Зачем при этом обязательно на лыжах и в гамаке?
#14 by Mikeware
согласен. Но плох тот чайник, который не мечтает стать самоваром. при проведении система сама распределит по правилам миграции. прямое создание - гораздо быстрее, чем оле. и синхронно, в отличие от кд и прочих. Хотя согласен насчет некоторой специфичнности данного вида секса...
#15 by woha
Как создать уникальный ключ?
#16 by vip03
в DH ищешь максимальный ИД и прибавляешь к нему 1 если РИБ + префикс базы
#17 by vip03
да. 1с хранит ид в 36 формате.
#18 by Mikeware
#19 by woha
Спасибо, попробую.
#20 by Ёпрст
проще уж через sqllock + НовыйИД
#21 by woha
это как?
#22 by Ёпрст
Хотя, для снеговика, ему всё равно придётся делать это руками
#23 by woha
exec sp_executesql N'Insert into _1SJOURN values( ,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,0,1,2,3,4,5,6,7,8,9,@P20,@P21,@P22,@P23,@P24,@P25,@P26,@P27,@P28,@P29,@P30,@P31,@P32,@P33,@P34,@P35,@P36,@P37,@P38,@P39,@P40)', N' int,@P2 varchar,@P3 int,@P4 smallint,@P5 varchar,@P6 varchar,@P7 varchar,@P8 tinyint,@P9 bit,0 int,1 int,2 bit,3 bit,4 bit,5 bit,6 bit,7 bit,8 bit,9 bit,@P20 bit,@P21 bit,@P22 bit,@P23 bit,@P24 bit,@P25 bit,@P26 bit,@P27 bit,@P28 bit,@P29 bit,@P30 bit,@P31 bit,@P32 bit,@P33 bit,@P34 varchar,@P35 varchar,@P36 varchar,@P37 tinyint,@P38 tinyint,@P39 tinyint,@P40 tinyint', 0, ' 8XYCUOFC', 7671, 1, '2016031676IEV4 8XYCUOFC', '      76712016    ', '88565819            ', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '     0   ', '     0   ', '                                                  ', 0, 0, 0, 0 я так понимаю это инсерт в таблицу журнала
#24 by Mikeware
учти, что "CB " в - это ид текущего узла рбд. если распределенки нет, тогда проще Функция ВернутьНовыйИд Экспорт
#25 by Ёпрст
ааа.. ща спросит еще, где текст хранимки convert10to36 )
#26 by Mikeware
мля...
#27 by woha
"НовыйИд=ЗапросСКЛ.ВыполнитьСкалярный("select ltrim(dbo.convert10to36(max(dbo.convert36to10(iddoc))+1)) from _1sjourn "); " без оле чем это можно выполнить?
#28 by Ёпрст
ado
#29 by Ёпрст
и.. в нет оле, если что
#30 by ДенисЧ
А что, адо это уже не оле? )))
#31 by Mikeware
возьми сам текст запроса, да выполни..
#32 by woha
Спасибо
#33 by Mikeware
взлетело?
#34 by woha
еще руки не дошли. как только доделаю, то обязательно отпишусь как сделал.
#35 by woha
Все это должно работать в веб-клиенте, а оле у меня не под ним не заработало. К тому же оле 1С77 не сериализуется. Нужно постоянно инициализировать при каждом новом вызове сервера.
#36 by mistеr
На сервере это должно работать, а не в веб-клиенте.
#37 by woha
немного опишу суть всего. имеется база 1С77 в которой создают заказы и происходят отгрузки. нужно сделать возможность удаленного создания заказов с контролем свободных остатков. 1С8 выполняет роль веб-клиента, которая берет данные из (внешние источники данных) 1С77 и в результате должна записать в 1С77 готовый заказ и сделать это как можно быстрее (информация по остаткам оперативно меняется).
#38 by Serginio1
Есть вариант обмена через TCP/IP.
#39 by mistеr
RDP не проще ли настроить?
#40 by woha
на удаленной машине запускается только одно приложение написанное на java и больше никакого интерфейса.
#41 by Serginio1
А зачем тебе 8 ка, если ты можешь на java написать Вэб сервис или HTTP клиента?
#42 by Serginio1
Проще завести сервер терминалов. Дешевле будет.
#43 by Mikeware
через  TCP/IP - NetaInet и Rik_SQL прекрасно работают
#44 by Serginio1
Дя я не против. Пусть использует, что хочет. Хоть Вэб сокеты. Только для его задачи проще использовать RDP
#45 by Garykom
а может все таки изучить 1С 7.7 ? и внешнюю обработку к ней наваяти?
#46 by woha
не запустится на удаленной машине RDP
#47 by Serginio1
Это смотря как настроишь. Тут куча народу предпочитают терминальные сессии вместо вэб клиента
#48 by Лефмихалыч
добавь в условия еще: "это надо делать ночью на болоте, стоя в гамаке с аквалангом" и пасьянс сойдется.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С