Создание отчета на СКД для внешних баз #798166


#0 by АннаДеловая
Привет! Такой вопрос вот- есть несколько сторонних баз, есть основная база для работы ( почти все базы БП) необходимо сделать отчеты на СКД, которые отражали бы  текущие данные по нескольким категориям, так вот  из уже имеющихся отчетов сделан заброс в виде набора данных для сторонних баз, сделан запрос по основной базе, потом эти данные объединяются автоматом (объединение наборов записей), из сторонних баз мы можем получить только наименование поэтому и из текущей базы получаем только наименование. Вопрос= а как сделать отборы по позициям? Чтобы пользователи могли выбирать в списке равно и тд (известно, что элементы многих справочников, по которым хотят делать отбор, совпадают) есть вариант вывести поле-отбор на форму, давать пользователям выбирать элементы справочника а потом в отборы кидать только элементы этих справочников а еще как нужно?)
#1 by Бертыш
Сложностей тут ничуть. Вам надо как то синхронизировать объекты между собой. Соответственно заведите себе например одну базу с синхронизацией элементов где у Вас будет хранится комбинация база ,внутренний идентификатор в базе. В этой базе (она может быть основной базой БП, а может вообще быть базой пустышкой). Соответственно для организации отбора пользователю в этой базе придётся до отбора настроить синхронизацию некоего виртуального элемента с внутренними ID элементов всех интересующих его баз. Далее... Если Вам принципиально что бы было СКД и в связующей и в связуемых базах, то Вам надо переучить интересные для Вас отчёты на предмет выгрузки схемы в набор данных. Далее Вы этот набор данных крутите в консолидирующей базе. Задача на мой взгляд если не элементарнейшая, то уж во всяком случае одна из наиболее элементарных. Я клиенту так настроил заполнение при бесшовной работе строк в документах в базе 1С Управляющий на базе начинки документов 1С Рарус общепит. То есть по щелчку у пользователя в управляющем открывается форма нового или существующего документа в рарус общепите
#2 by Бертыш
Наименование в консолидирующей базе будет транслироваться в консолидируемые базы с установко параметров по внутреннему ИД. Вместо формирования отчет, не корысти ради, формируйтеи саму схему и выполняйте её на лету и передавайте параметры отбора с заполннием по внутреннему ИД
#3 by АннаДеловая
чето замудренно, а за какое время вы бы выполнили эту задачу?
#4 by Неверный Параметр И
У вас вакансия открыта?
#5 by h-sp
просто синхронизировать по наименованию. И договориться чтобы наименования были одинаковые во всех базах.
#6 by Неверный Параметр И
Эхьэхь... договориться чтобы наименования были одинаковые во всех базах [x]
#7 by h-sp
ну у нас так сделано. Существует список статей отчета. Он общий для всех баз. Работает уже лет 5, никаких проблем не было.
#8 by Бертыш
При условии программной генерации и исполнения схем СКД по COM/OLE всё зависит от сложности требуемых отчётов. Ориентировочно такая задача занимает часов 30-40. Однако в моей нынешней ситуации проблема эти часы выкроить ибо я готовлюсь на всех парах сейчас к сдаче экзамена 1С Специалист по платформе. Для настройки синхронизации нужны будут образцы баз с тестовыми наборами данных. Желательно не очень большие. Можно анонимизацию каждой базы обеспечить специальными обработками. Если у Вас есть свои специалисты, то есть есть кому в принципе сделать и кого озадачить, то киньте им ссылку на мою статью на моём сайте. Статья писалась ещё во времена 8.1, но строго говоря ничего особо не поменялось.
#9 by Бертыш
Для упрощения конекта по OLE к базам рекомендую хранить и передавать саму схему между базами в виде XML файла
#10 by Бертыш
Для такого решения опять же не плохо бы иметь централизованную базу в которой эти справочники вести, и откуда потом пулять их в другие базы где соответствующие справочники заблокированны для изменений
#11 by АннаДеловая
ну ок, наименования будут одинаковыми, но вот как настраивать отборы как давай пользователю возможность выбирать элементы из справочника?
#12 by h-sp
там по другому принципу сделали. Есть отчет руководителю и есть расшифровка отчета, то есть если пользователю нужно что-то уточнить, он встает на нужную строчку первого отчета и щелкает мышкой. После этого вызывается второй отчет с нужными параметрами. Или список документов, обычно это нужно. Ну как в бухгалтерии ОСВ, щелкаем на строчке, проваливаемся в карточку счета, на карточке щелкаем, дальше проваливаемся, в конце концов попадаем в документ-регистратор. А с отборами у них как-то не пошло, что-то не дружат пользователи с отборами.
#13 by Альбатрос
Получить из наименования ссылку, не?
#14 by АннаДеловая
Да, вы правильно говорите есть много вопросов относительно отборов в таких случаях= например пользак решил сделать отборы по 4 категориям отчета(4м полям) в этом случае нам надо давать пользаку возможность выбирать элементы из справочника "чтобы он не вспоминал названия", также надо давать возможность делать отбор в списке и тп вот как это лучше сделать, интересно?
#15 by АннаДеловая
Из наименования ссылку? Для чего?
#16 by Альбатрос
Цитирую "дать пользователю возможность выбирать элементы из справочника". То есть в наборах данных оперировать не наименованиями, а ссылками из справочника базы, в которой строится отчет. Ну если я правильно понял проблему.
#17 by АннаДеловая
так придется для каждого отбора прописывать условия. дербанить запрос и тп, это громоздко, плюс, если пользователь захочет новые отборы добавить? надо будет опять дербанить запрос?
#18 by АннаДеловая
апчхи
#19 by h-sp
ну как советует. Делаете отбор по справочнику, а этот справочник у вас в запросе привязан к основному набору.
#20 by АннаДеловая
что это значит?) отбор по справочнику где мне вывести в настройках СКД, либо на форме?  Вы планируете все таки дербанить запрос? Дело в том, что нельзя сделать отбор по справочнику привычным образом, тк из сторонних баз мы получаем лишь наименования, т.е один набор данных из текущей базы а другой набор данных со сторонних баз, поэтому надо как-то подумать как передать в СКД отборы заданные пользоваелями и представления этих отборов
#21 by Йохохо
вы предлагаете пользователю каждый раз перед формированием отчета установить соответствия элементов разных баз? по наименованию?
#22 by Альбатрос
Да что там дербанить то, я не пойму? Дописать соединение со справочником по наименованию (или коду, я хз, как у вас там синхронизируется.)?
#23 by АннаДеловая
какое соединение дописать?) куда? Есть запрос, есть поля запроса НабоЗапрсов1 = выполнение из текущей базы НаборЗапросов2 = из сторонних баз Проблема Тк из сторонних баз мы не получаем обекты, а получаем лишь представления или наименования, то стандартными методами СКД мы не можем дать пользователю возможность выбирать из справочника элементы для отбора НО! Если мы зададим такую возможность, то в запросе, относящемуся к сторонним базам надо будет прописывать условие "Где" и каждую встрочку добавлять по которой пользователь делает отбор, кроме того надо будет ставить условие на то , какойвид справочника и тп Так вот идет поиск уданого алгоритма я останавливаюсь на стандартном отборе по настройкам СКД добавляя их в процедуре "При компоновке результата" там добавляется отбор, если пользователь выбрал его в поле ввода, выведенном на форму Далее идет анализ список ли это либо единичный элемент, устанавливается "равно " или "в списке" и перебираются элементы справочника их наименования и участвуют в стандартном отбоке СКД  добавляемом в процедуре "При компоновке результата" но есть ли метод попроще?
#24 by aleks_default
Не с того конца беретесь за решение проблемы. Вам уже сказали снаячала надо каким-то образом задать соспоставление данных справочников внешних баз вашей
#25 by АннаДеловая
сопоставление делают оказывается вручную сами пользаки, толи копипастом толи как перенося элементы ( интересующие нас это спр физ лица и контрагенты) я думаю предложить при заведении элемента просто его регламентным заданием вечером, переносить в другие базы Так что элементы везде одинаковые впринциапе, но вот заквоздка как раз в том, как делать удобными отборы, так же не дербаня запрос а пользуясь уже имеющимися средствами СКД
#26 by aleks_default
Ели сопоставление делается вручную, то значит у вас в текущей базе есть ссылки (УИДЫ) обоих сопоставленных элементов.  Значит нужно просто при выполнении НабораЗапросов2 (во внешней базе) получить в этой базе из УИДА ссылку и добавить в отбор.
#27 by АннаДеловая
Поясни плиз, непонятно! Т.е нужно в набор запросов добавить поле УИД? иполучать его, потом  что? Читать и получать ссылку? "то значит у вас в текущей базе есть ссылки (УИДЫ) обоих сопоставленных элементов" = это как понимать? Смотри есть спр в базе1 бух заводит элемент, потом копипастом его в других базах заводит, но я думаю есть кнопка про которую они забыли тк это тупняк во все базы копипастить
#28 by aleks_default
Поясни плиз, непонятно! Т.е нужно в набор запросов добавить поле УИД? иполучать его, потом  что? Читать и получать ссылку? "то значит у вас в текущей базе есть ссылки (УИДЫ) обоих сопоставленных элементов" = это как понимать? Смотри в типовой конфе регистр СоответствиеОбъектовИнформационныхБаз. Вот что я имел ввиду. И вообще почему бы вам не сделать простой обмен данными через xml. Тогда такой проблемы как у тебя не возникнет никогда.
#29 by АннаДеловая
обмен какими данными? Обмен элементами справочника?
#30 by aleks_default
(29 Неожиданно?
#31 by АннаДеловая
объясните для чего делать обмен элементами справочника)
#32 by aleks_default
Как минимум чтобы не заводить их в каждой базе вручную. И вообще если вам это не понятно, то мне в принципе нечем вам помочь.
#33 by АннаДеловая
выгрузка элементов в другие бази итак уже есть, суть не в этом а втом как сделать удобным отбор
#34 by АннаДеловая
Ну что есть еще советики?)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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