Имя: Пароль:
1C
 
Создание отчета на СКД для внешних баз
,
0 АннаДеловая
 
28.05.17
18:24
Привет!

Такой вопрос вот- есть несколько сторонних баз, есть основная база для работы ( почти все базы БП) необходимо сделать отчеты на СКД, которые отражали бы  текущие данные по нескольким категориям, так вот  из уже имеющихся отчетов сделан заброс в виде набора данных

для сторонних баз, сделан запрос по основной базе, потом эти данные объединяются автоматом (объединение наборов записей), из сторонних баз мы можем получить только наименование поэтому и из текущей базы получаем только наименование.
Вопрос= а как сделать отборы по позициям? Чтобы пользователи могли выбирать в списке равно и тд

(известно, что элементы многих справочников, по которым хотят делать отбор, совпадают)

есть вариант вывести поле-отбор на форму, давать пользователям выбирать элементы справочника а потом в отборы кидать только элементы этих справочников а еще как нужно?)
1 Бертыш
 
28.05.17
20:19
Сложностей тут ничуть. Вам надо как то синхронизировать объекты между собой. Соответственно заведите себе например одну базу с синхронизацией элементов где у Вас будет хранится комбинация база ,внутренний идентификатор в базе. В этой базе (она может быть основной базой БП, а может вообще быть базой пустышкой). Соответственно для организации отбора пользователю в этой базе придётся до отбора настроить синхронизацию некоего виртуального элемента с внутренними ID элементов всех интересующих его баз. Далее... Если Вам принципиально что бы было СКД и в связующей и в связуемых базах, то Вам надо переучить интересные для Вас отчёты на предмет выгрузки схемы в набор данных. Далее Вы этот набор данных крутите в консолидирующей базе. Задача на мой взгляд если не элементарнейшая, то уж во всяком случае одна из наиболее элементарных. Я клиенту так настроил заполнение при бесшовной работе строк в документах в базе 1С Управляющий на базе начинки документов 1С Рарус общепит. То есть по щелчку у пользователя в управляющем открывается форма нового или существующего документа в рарус общепите
2 Бертыш
 
28.05.17
20:21
Наименование в консолидирующей базе будет транслироваться в консолидируемые базы с установко параметров по внутреннему ИД. Вместо формирования отчет, не корысти ради, формируйтеи саму схему и выполняйте её на лету и передавайте параметры отбора с заполннием по внутреннему ИД
3 АннаДеловая
 
28.05.17
20:26
(1) чето замудренно, а за какое время вы бы выполнили эту задачу?
4 Неверный Параметр И
 
28.05.17
20:44
(3) У вас вакансия открыта?
5 h-sp
 
28.05.17
20:48
(1) просто синхронизировать по наименованию. И договориться чтобы наименования были одинаковые во всех базах.
6 Неверный Параметр И
 
28.05.17
20:52
(5) Эхьэхь...

договориться чтобы наименования были одинаковые во всех базах [x]
7 h-sp
 
28.05.17
20:55
(6) ну у нас так сделано. Существует список статей отчета. Он общий для всех баз. Работает уже лет 5, никаких проблем не было.
8 Бертыш
 
28.05.17
21:01
(3) При условии программной генерации и исполнения схем СКД по COM/OLE всё зависит от сложности требуемых отчётов. Ориентировочно такая задача занимает часов 30-40. Однако в моей нынешней ситуации проблема эти часы выкроить ибо я готовлюсь на всех парах сейчас к сдаче экзамена 1С Специалист по платформе. Для настройки синхронизации нужны будут образцы баз с тестовыми наборами данных. Желательно не очень большие. Можно анонимизацию каждой базы обеспечить специальными обработками. Если у Вас есть свои специалисты, то есть есть кому в принципе сделать и кого озадачить, то киньте им ссылку на мою статью на моём сайте. Статья писалась ещё во времена 8.1, но строго говоря ничего особо не поменялось.
http://1cniku.ru/Articles/V8OLE.html
9 Бертыш
 
28.05.17
21:03
Для упрощения конекта по OLE к базам рекомендую хранить и передавать саму схему между базами в виде XML файла
10 Бертыш
 
28.05.17
22:15
(7) Для такого решения опять же не плохо бы иметь централизованную базу в которой эти справочники вести, и откуда потом пулять их в другие базы где соответствующие справочники заблокированны для изменений
11 АннаДеловая
 
29.05.17
04:09
(5) ну ок, наименования будут одинаковыми, но вот как настраивать отборы как давай пользователю возможность выбирать элементы из справочника?
12 h-sp
 
29.05.17
06:29
(11) там по другому принципу сделали. Есть отчет руководителю и есть расшифровка отчета, то есть если пользователю нужно что-то уточнить, он встает на нужную строчку первого отчета и щелкает мышкой. После этого вызывается второй отчет с нужными параметрами. Или список документов, обычно это нужно. Ну как в бухгалтерии ОСВ, щелкаем на строчке, проваливаемся в карточку счета, на карточке щелкаем, дальше проваливаемся, в конце концов попадаем в документ-регистратор.
А с отборами у них как-то не пошло, что-то не дружат пользователи с отборами.
13 Альбатрос
 
29.05.17
06:32
(11) Получить из наименования ссылку, не?
14 АннаДеловая
 
29.05.17
07:03
(12) Да, вы правильно говорите есть много вопросов относительно отборов в таких случаях= например пользак решил сделать отборы по 4 категориям отчета(4м полям) в этом случае нам надо давать пользаку возможность выбирать элементы из справочника "чтобы он не вспоминал названия", также надо давать возможность делать отбор в списке и тп
вот как это лучше сделать, интересно?
15 АннаДеловая
 
29.05.17
07:03
(13) Из наименования ссылку? Для чего?
16 Альбатрос
 
29.05.17
07:16
(15) Цитирую "дать пользователю возможность выбирать элементы из справочника". То есть в наборах данных оперировать не наименованиями, а ссылками из справочника базы, в которой строится отчет. Ну если я правильно понял проблему.
17 АннаДеловая
 
29.05.17
07:34
(16) так придется для каждого отбора прописывать условия. дербанить запрос и тп, это громоздко, плюс, если пользователь захочет новые отборы добавить? надо будет опять дербанить запрос?
18 АннаДеловая
 
29.05.17
09:50
апчхи
19 h-sp
 
29.05.17
10:02
(18) ну как (16) советует. Делаете отбор по справочнику, а этот справочник у вас в запросе привязан к основному набору.
20 АннаДеловая
 
29.05.17
10:30
(19) что это значит?) отбор по справочнику где мне вывести в настройках СКД, либо на форме?  Вы планируете все таки дербанить запрос? Дело в том, что нельзя сделать отбор по справочнику привычным образом, тк из сторонних баз мы получаем лишь наименования, т.е один набор данных из текущей базы а другой набор данных со сторонних баз, поэтому надо как-то подумать как передать в СКД отборы заданные пользоваелями и представления этих отборов
21 Йохохо
 
29.05.17
10:34
(20) вы предлагаете пользователю каждый раз перед формированием отчета установить соответствия элементов разных баз? по наименованию?
22 Альбатрос
 
29.05.17
10:34
(20) Да что там дербанить то, я не пойму? Дописать соединение со справочником по наименованию (или коду, я хз, как у вас там синхронизируется.)?
23 АннаДеловая
 
29.05.17
12:10
(22) какое соединение дописать?) куда?

Есть запрос, есть поля запроса

НабоЗапрсов1 = выполнение из текущей базы

НаборЗапросов2 = из сторонних баз


Проблема

Тк из сторонних баз мы не получаем обекты, а получаем лишь представления или наименования, то стандартными методами СКД мы не можем дать пользователю возможность выбирать из справочника элементы для отбора

НО! Если мы зададим такую возможность, то в запросе, относящемуся к сторонним базам надо будет прописывать условие "Где" и каждую встрочку добавлять по которой пользователь делает отбор, кроме того надо будет ставить условие на то , какойвид справочника и тп

Так вот идет поиск уданого алгоритма

я останавливаюсь на стандартном отборе по настройкам СКД

добавляя их в процедуре "При компоновке результата" там добавляется отбор, если пользователь выбрал его в поле ввода, выведенном на форму

Далее идет анализ список ли это либо единичный элемент, устанавливается "равно " или "в списке" и перебираются элементы справочника их наименования и участвуют в стандартном отбоке СКД  добавляемом в процедуре "При компоновке результата" но есть ли метод попроще?
24 aleks_default
 
29.05.17
12:15
(23)Не с того конца беретесь за решение проблемы. Вам уже сказали снаячала надо каким-то образом задать соспоставление данных справочников внешних баз вашей
25 АннаДеловая
 
29.05.17
12:35
(24) сопоставление делают оказывается вручную сами пользаки, толи копипастом толи как перенося элементы ( интересующие нас это спр физ лица и контрагенты) я думаю предложить при заведении элемента просто его регламентным заданием вечером, переносить в другие базы

Так что элементы везде одинаковые впринциапе, но вот заквоздка как раз в том, как делать удобными отборы, так же не дербаня запрос а пользуясь уже имеющимися средствами СКД
26 aleks_default
 
29.05.17
12:49
Ели сопоставление делается вручную, то значит у вас в текущей базе есть ссылки (УИДЫ) обоих сопоставленных элементов.  Значит нужно просто при выполнении НабораЗапросов2 (во внешней базе) получить в этой базе из УИДА ссылку и добавить в отбор.
27 АннаДеловая
 
29.05.17
14:09
(26) Поясни плиз, непонятно! Т.е нужно в набор запросов добавить поле УИД? иполучать его, потом  что? Читать и получать ссылку?
"то значит у вас в текущей базе есть ссылки (УИДЫ) обоих сопоставленных элементов" = это как понимать?

Смотри есть спр в базе1 бух заводит элемент, потом копипастом его в других базах заводит, но я думаю есть кнопка про которую они забыли тк это тупняк во все базы копипастить
28 aleks_default
 
29.05.17
14:34
Поясни плиз, непонятно! Т.е нужно в набор запросов добавить поле УИД? иполучать его, потом  что? Читать и получать ссылку?
"то значит у вас в текущей базе есть ссылки (УИДЫ) обоих сопоставленных элементов" = это как понимать?

Смотри в типовой конфе регистр СоответствиеОбъектовИнформационныхБаз. Вот что я имел ввиду. И вообще почему бы вам не сделать простой обмен данными через xml. Тогда такой проблемы как у тебя не возникнет никогда.
29 АннаДеловая
 
29.05.17
15:09
(28) обмен какими данными? Обмен элементами справочника?
30 aleks_default
 
29.05.17
15:13
(29 Неожиданно?
31 АннаДеловая
 
29.05.17
15:35
(30) объясните для чего делать обмен элементами справочника)
32 aleks_default
 
29.05.17
15:39
(31) Как минимум чтобы не заводить их в каждой базе вручную. И вообще если вам это не понятно, то мне в принципе нечем вам помочь.
33 АннаДеловая
 
29.05.17
15:44
(32) выгрузка элементов в другие бази итак уже есть, суть не в этом а втом как сделать удобным отбор
34 АннаДеловая
 
30.05.17
11:33
Ну что есть еще советики?)