Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Всем привет! Гууу… даже в выходные дни вынужден работать… и даже в такое время нет покоя.. Это потому что охота отмучиться и забыть… И просто поскорее избавиться Так вот, проблема такая. И попытаюсь коротко изложить. Если получиться ....что чаще не получается … согласен ))))) И если и на этот раз опять не получилось коротко то опять и тут БОЛЬШИЕ ИЗВИНЕНИЯ ЗА ТАКОЙ ОПЯТЬ ГИГАНТСКИЙ РАЗМЕР. Но это что бы удобнее было знать в деталях суть вопроса. Представите, что есть две базы. Одна серверная … т.е. рабочая … а другая файловая на ПК. Обе базы содержат одни и те же данные. Но при этом одна из них первая урезанная, а вторая полная. Имею ввиду то, что конфигурация у серверной рабочей базы сильно урезана. Почти все возможности есть только по юр лицам. А во всем остальном это просто сухие данные справочников и документов без каких либо созданных форм, отчетов, очень удобных для загрузки данных и прочих целей обработок и т.д. Т.е. только сухие данные. Не отчетов не удобных для работы форм … ничего вообще. Короче в этом полная бездарщина. Хотя в том, как база в корне выстроена тут полная противоположность бездарщине. Потому что копия той же базы с теми же данными но уже в файловом варианте …загруженная уже из другой конфигурации … навороченной ….. с гибкими алгоритмами расчета, те же данные считает по нулям. Но это фаилово-серверная ситуация. А вопрос в том, как я сам буду с этим работать с той рабочей базой, конфигурация которой урезана. Ибо работаю ведь не только программистом, но начальником технической статистики. И тут вопрос решил следующим образом ... Понаписал кучу строк кода для получения всех данных из базы серверной в базу файловую. И вопрос был решен. Т.е. в итоги я сам пользуюсь не рабочим вариантом базы правильно выстроенной, но очень не удобной и практически не возможной работать с ней, которая на сервере, а файловым, навороченным и удобным )) естественно )) И как получать данные из урезанной базы на сервере в файловую с этим нормально. Файловая база с каждым месяцем пополняется новыми данными от рабочей серверной. Но я просто хочу сделать еще удобнее. А именно войти в базу, которая на сервере через другую конфигурацию. Т.е. не через ту с которой синтезируется база на сервере с урезанной конфигурацией, а войти через не урезанный и полный вариант конфигурации. Вот как хотел. И для этой цели я понасодавал кучу внешних обработок … т.е. множество фишек из полного варианта конфигурации сохранил виде внешних обработок. И открывал эти внешние обработки из тонкого клиента серверной базы. И они все абсолютно нормально работают и не где не ошибаются. Ибо ведь данные базы одни и те же. Но все дело в том, что этих разных внешних обработок стало куча. И открывать каждую отдельно для своей части работы стало очень не удобно. Поэтому нужно просто всю ту навороченную конфигурацию в целом создать как внешнюю обработку и зайти в базу на сервере через нее. И так что бы данные базы так же отобразить из другой конфигурации. И не важно как зайти.. через файл/открыть обработку или иным способом. Поэтому вопрос в том МОЖНО ЛИ ТАК СДЕЛАТЬ? Только если опять и тут нельзя то не рубите сразу… ))))) …и не будьте жестоки ))) Потому, что буду сильно расстроен если так. ))))) И тогда напрасно столько в деталях описал… относительно того что нужно. Тогда как может задуманное не реализуемо ибо такой возможности опять и тут просто нет. И поэтому буду признателен …и это без иронии. Если кто подскажет варианты решения вопроса.
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Меня укачивает от такого количества текста :-)
Если вопрос в том можно ли отобразить данный одной базы через другую - да, можно. Делать либо соединение через COM и выводить нужные данные, либо писать какой-то веб-сервис, либо делать файловые загрузки-выгрузки. Вариантов масса - вопрос для чего и какой объем данных
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Местный
Сообщений: 2908
Из: Київ, Україна
Спасибо сказали: 1159 раз
Рейтинг: 1244.5
QUOTE (Gigi @ 14.04.19, 15:41)
без каких либо созданных форм, отчетов, очень удобных для загрузки данных и прочих целей обработок и т.д.
Даже если вы в этих формах, отчетах и обработках пишите столько же кода, как и текста в сообщениях на форуме, вряд ли это хоть сколько отразится на статистике базы. Основной вес несут "сухие данные": справочники, документы, движения этих документов и прочие данные (статистику таблиц можно увидеть в sql sms, например, или воспользовавшись соответствующей обработкой, коих в нете полно).
Как бы там ни было, есть функционал automation сервера и внешнего соединения.
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
andr_andrey @ Сегодня, 9:08
,
Цитата(andr_andrey @ 15.04.19, 9:08)
Много текста, а смысл витиевато ускользает. С вероятностью 50% можно отвечать - "да".
Гууу ... спасибо за "да" ... хоть и на 50%
Цитата(Vofka @ 15.04.19, 9:11)
то можно создать 1 внешнюю обработку, куда напихать весь функционал и работать с ней одной, а не с кучей разных.
Да можно... не вопрос. Но как? Во первых внешняя обработка че то сильно ограничена. Там че то не увидел модули.... только формы ЧТ и макеты. Во вторых. На пример форма для рабочего стола ... сохрани ее как внешнюю обработку. И потом открыл через обработку из урезанной. Все нормально работает ... макеты отчетов отображают данные. Но это только при нажатии кнопок. Но стоит открыть открыть объект дин. списка. которая есть в этой общей форме появляться форма урезанная ... т.е. та которая есть у базы на сервере. Просто нужно что бы обработка все объекты дин. списка списка при открытии отображали не те родные с базой формы, а совсем другие. Так что вопрос в том, реализуемо ли это? Если да то, как? Т.е. в каком русле двигаться? Во внешнюю обработку всю конфигурацию как запихнешь? И как сделаешь так что бы уже в другой базе на отображала свои формы а не те которые у урезанной... Вот в чем вопрос..
Цитата(Vofka @ 15.04.19, 9:11)
Меня укачивает от такого количества текста :-)
Да ... правильно... согласен ... не стоило так кочегарить ))) Ну извините )) .... Это просто дурное влияние работы... перегрева ... аж в выходные дни. Ладно извините ))
Цитата(Bernet @ 15.04.19, 9:25)
Если вопрос в том можно ли отобразить данный одной базы через другую - да, можно. Делать либо соединение через COM и выводить нужные данные, либо писать какой-то веб-сервис, либо делать файловые загрузки-выгрузки. Вариантов масса - вопрос для чего и какой объем данных
А вот это интересный вариант. Думаю он больше устраивает.. Отлично! Услышал что можно... Но тормозить не будет?
Gigi @ Сегодня, 9:39
, Если несколько решений то давайте возьмем один из них. Допустим форма общая где для простоты примера всего один единственный дин. список. Объекты этого списка в работающей базе не имеют созданную форму. Тогда как в другой файловой конфе она есть. Так вот, как отобразить тот же объект в другой форме? Если просто добавить ее во внешнюю обработку то как сделать что бы она появилась при открытии объекта?
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Gigi @ Сегодня, 10:58
, Чтоб вы понимали - любой из перечисленных мной способов предполагает запросы к базе, т.е. вам с какой-то периодичностью надо вытягивать данные с той базы. Естественно, чем больше данных надо выгружать тем больше и время обмена. По сути то, что вы хотите - есть обмен между двумя базами по какому-то расписанию
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Цитата(Petre @ 15.04.19, 9:25)
Вряд ли это хоть сколько отразится на статистике базы.
Это я знаю...
А на счет текста сообщения ... Да ладно слушайте ... ? Просто изложил детально... Что бы было понятно для каких целей.
Цитата(Petre @ 15.04.19, 9:25)
Как бы там ни было, есть функционал automation сервера и внешнего соединения.
Тоже вариант. Но .... короче с всем этим нужно вообще разобраться ...
Цитата(Bernet @ 15.04.19, 10:09)
Чтоб вы понимали - любой из перечисленных мной способов предполагает запросы к базе, т.е. вам с какой-то периодичностью надо вытягивать данные с той базы. Естественно, чем больше данных надо выгружать тем больше и время обмена. По сути то, что вы хотите - есть обмен между двумя базами по какому-то расписанию
Стоп ... дело в том, что так я уже сделал. И это и указанно в том самом не малом сообщении за которое меня тут так корят )))) Так что с обменом все нормально. Через ком объект ... стерилизация ... десериализация и прочие очень удобные возможности. Просто одну конфу из другой базы в целом использовать для другой. Вот как ... без обмена. Но думаю это проблематично. Потому что в 1С конфа и база плотно синтезируются. И база при открытии какого то объекта ссылается на те формы которые есть в этой базе. Естественно. А как объект при открытии отобразить в какую то стороннюю форму. Которая в самой базе отсутствует? Короче... с этим нужно разбираться.
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
Gigi @ Сегодня, 11:39
,
Цитата
Просто одну конфу из другой базы в целом использовать для другой.
Без обменов - только COM-соединение с базой, но это все будет достаточно сложно, т.к. придется писать код на получение каких-то данных, их временное хранение где-то или вывод куда-то, их изменение и запись. При большом количестве объектов этот будет немалый гемор.
P.S. опять же, это по сути своей тот же обмен, пусть даже и без записи во вторую базу. А просто взять и "наложить" данные одной базы на другую - нельзя.
Сообщение отредактировал Bernet - 15.04.19, 10:56
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Gigi @ Сегодня, 10:39
, Поэтому ладно ... для этой темы лучше объявить тайм-аут ... Потому что нужно сперва как следует разобраться со всеми предложенными тут вариантами решений. Что бы вообще понять какой подходит в большей степени. И если будут вопросы то продолжу тему. И буду признателен ...
Вообще все таки как было бы супер если человек имел бы телепатические способности. В таком случае не было бы и такой необходимости вообще кому то что то даже объяснять.... Тем более так детально. Зачем это... когда смысл переноситься из одной головы в другую .. )) Но к сожалению нет такой способности так что придется излагать.
Пока!
Цитата(Bernet @ 15.04.19, 10:54)
Без обменов - только COM-соединение с базой, но это все будет достаточно сложно, т.к. придется писать код на получение каких-то данных, их временное хранение где-то или вывод куда-то, их изменение и запись. При большом количестве объектов этот будет немалый гемор.
Я так и знал... Ну да ... 1С тут не при чем. Дело в том, что это на самом деле сложно... целый гем... система 1С не для таких вещей сделана. Не для такого просто изврата которое сало нужно избалованному мальчику. И она не рассчитана на какие то капризны. А то что захотел это знаю что уже просто каприз. Видишь ли ... отобразить все данные из других форм. Понятно... ! Но я все таки попытаюсь ... и еси будут вопросы ... продолжу тему! Всем спасибо! Пока!
Группа: Местный
Сообщений: 372
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 66.3
Цитата(Vofka @ 15.04.19, 9:11)
то можно создать 1 внешнюю обработку, куда напихать весь функционал и работать с ней одной, а не с кучей разных.
Сам так делаю. Всякие "эксперименты" - на форме более 30 кнопок для разных вещей. Чтобы не таскать за собой 30+ внешних обработок, всё в одной. Какие-то одноразовые, какие-то просто понять алгоритм или пример работы чего-то.
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Опять всем привет.. Я частично решил вопрос... вопрос только отражения данных ... и пока без процедуры перезаписи объекта из внешней обработки. И отображение с использованием если не целиком всю конфу то хотя бы, сделал главное . Что бы значения реквизитов объекта дин. списка при открытии отобразились на форму внешней обработки Вот что... Ну а как при нажатии Записать/Провести это потом.. Поэтому говорить ничего не буду... а лишь скину только код... и вы сами поймете ЧТО И КАК МНЕ БЫЛО НУЖНО! И жаль что от вас уважаемые я так и не дождаться этого ... Что бы в ответ вы мне скинули только код и ничего больше. И код такой же детальный и понятный как у меня прямо щас ... А вместо этого что я слыша? Вы не понимаете уважаемые, что я так детально объясняю потому, что нужен готовый код и ничего больше. В таком случае помогли бы мне таким образом просто время сэкономить. И за это был бы благодарен вдвойне... Вот простое решение
//========= Нужное для задачи в общем модуле урезанной конфигурации // ==== ПОЛЕНИЛСЯ СОКРАЩАТЬ ФУНКЦИИ ...
//Обработка=SubFx_ВнешняяОбработка.Получить(ИмяФайла); Функция Получить(ИмяФайла) Экспорт дд = Новый ДвоичныеДанные(ИмяФайла); АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(дд); ИмяОбр = ВнешниеОбработки.Подключить(АдресВоВременномХранилище,,); Возврат ИмяОбр; КонецФункции
//стрРеквизиты=FxSub_МетаДанные.Реквизиты("МетаданныеГруппа","МетаданныеИмя"); Функция Реквизиты(МетаданныеГруппа,МетаданныеИмя) Экспорт Реквизиты=Новый Структура(); //============================================ Если МетаданныеГруппа="Справочники" или МетаданныеГруппа="Справочник" Тогда МетаданныеГруппа="Справочники"; Идентификатор="Код"; ОсновнойРеквизит="Наименование"; ИначеЕсли МетаданныеГруппа="Документы" или МетаданныеГруппа="Документ" Тогда МетаданныеГруппа="Документы"; Идентификатор="Номер"; ОсновнойРеквизит="Дата"; ИначеЕсли МетаданныеГруппа="РегистрыСведений" или МетаданныеГруппа="РегистрСведений" Тогда МетаданныеГруппа="РегистрыСведений"; Идентификатор=Неопределено; ОсновнойРеквизит=Неопределено; Иначе Возврат Реквизиты; КонецЕсли; //============================================ МетаданныеИсточника=Метаданные[МетаданныеГруппа][МетаданныеИмя]; //============================================ Если Идентификатор=Неопределено тогда Для Каждого Измерение Из МетаданныеИсточника.Измерения Цикл Реквизиты.Вставить(Измерение.Имя,Измерение.Представление()); КонецЦикла; //-------------------------------------------- Для Каждого Ресурс Из МетаданныеИсточника.Ресурсы Цикл Реквизиты.Вставить(Ресурс.Имя, Ресурс.Представление()); КонецЦикла; //-------------------------------------------- Для Каждого Реквизит Из МетаданныеИсточника.Реквизиты Цикл Реквизиты.Вставить(Реквизит.Имя, Реквизит.Представление()); КонецЦикла; //-------------------------------------------- Иначе //-------------------------------------------- Для Каждого Реквизит Из МетаданныеИсточника.Реквизиты Цикл Реквизиты.Вставить(Реквизит.Имя, Реквизит.Представление()); КонецЦикла; //-------------------------------------------- КонецЕсли; //============================================ Возврат Реквизиты; КонецФункции
//стрРеквизитыЗначения=FxSub_МетаДанные.ССЫЛКА_ПолучитьЗначения(ОбъектСсылка,РеквизитИлиРеквизиты); Функция ССЫЛКА_ПолучитьЗначения(ОбъектСсылка,стрРеквизиты) Экспорт //Если ОбъектСсылка=Неопределено тогда Возврат Неопределено КонецЕсли; стрРеквизитыЗначения=Новый Структура(); Если ОбъектСсылка.Пустая() Тогда Возврат стрРеквизитыЗначения; КонецЕсли; //====================================== Для Каждого Элемент Из стрРеквизиты Цикл Реквизит=Элемент.Ключ; Значение=ОбъектСсылка[Реквизит]; стрРеквизитыЗначения.Вставить(Реквизит,Значение); КонецЦикла; //====================================== Возврат стрРеквизитыЗначения; КонецФункции
//==========Форма внешней обработки с динамическими списками взятая из рабочего стола.
//========== Форма документа сохраненная под тип объекта: "ВнешняяОбработка.ИмяФромыДокумента" //===========К которому был добавлен всего один реквизит Ссылки на объект, на пример с именем: "ДокСсылка"
&НаКлиенте Процедура ПриОткрытии(Отказ) Если Объект.ДокСсылка.Пустая()=Ложь Тогда стрРеквизиты=FxSub_МетаДанные.Реквизиты("Документы","ИмяДока"); стрРеквизитыЗначения=FxSub_МетаДанные.ССЫЛКА_ПолучитьЗначения(Объект.ДокСсылка,стрРеквизиты); Для каждого Элемиент из стрРеквизитыЗначения цикл Реквизит=Элемиент.Ключ; Значение=Элемиент.Значение; Попытка //На всякий пожарный... для начального теста... пока не всем элементам полей формы указал путь к данным Объект[Реквизит]=Значение; Исключение КонецПопытки; КонецЦикла; КонецЕсли КонецПроцедуры
И все дела ... правда пришлось повозиться... И главное говорил что каприз.... Но каприз нужный ...и может совсем не каприз а необходимость. Ладно ... по поводу темы кода есть еще маленький вопросик.. но это позже...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!