Доступ к МедКу через объекты

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 24 листопада 2016, 00:32

Фига себе задачка...
Вообще непонятно, зачем Вам наибольший номер, когда 1С сама нумерует автоинкрментом. Разве что пара нерадивых пользователей вручную создают, вместо выгрузки из 1С. Если так, то лучше всех посадить на 1С, да и спокойно выгружать из нее. Тогда технические вопросы вообще исчезнут.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Доступ к МедКу через объекты

Повідомлення PetroP » 24 листопада 2016, 10:31

Inkognito писав:SELECT card.code
FROM card
WHERE code=(SELECT MAX(card.code) FROM card) and card.form='12740'
Подскажите, это через ODBC?

vatikan
Повідомлень: 8
З нами з: 22 листопада 2016, 18:32

Re: Доступ к МедКу через объекты

Повідомлення vatikan » 24 листопада 2016, 10:34

To PetroP, да

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Доступ к МедКу через объекты

Повідомлення PetroP » 24 листопада 2016, 10:37

Подскажите, каким драйвером пользуетесь и какая строка подключения? Давненько работал, сейчас в Вин10 что-то не могу найти подход...

vatikan
Повідомлень: 8
З нами з: 22 листопада 2016, 18:32

Re: Доступ к МедКу через объекты

Повідомлення vatikan » 24 листопада 2016, 10:45

Код: Виділити все

	ПутьКБазеДанных = "C:\ProgramData\Medoc\Medoc\db\ZVIT.FDB";
	Соединение = Новый COMОбъект("ADODB.Connection");
	Соединение.ConnectionString = Вычислить(Шаблон("driver={Firebird/InterBase(r) driver};uid=SYSDBA;pwd=masterkey;database="+ПутьКБазеДанных+";"));
	Попытка
		Соединение.Open();
	Исключение
		Сообщить("Не удалось подключиться к базе: " + ОписаниеОшибки());
		Возврат 0;
	КонецПопытки;
Как то так, у меня Windows 10
Я ставил Firebird_ODBC_2.0.3.154_Win32.exe

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Доступ к МедКу через объекты

Повідомлення PetroP » 24 листопада 2016, 11:02

Да, все так. Видно с разрядностью проблемы...

PsAnc
Повідомлень: 5
З нами з: 24 листопада 2016, 14:22

Re: Доступ к МедКу через объекты

Повідомлення PsAnc » 24 листопада 2016, 22:49

Привет знатокам!
Пытаюсь побороть проблему:
После обращения к справочнику "CARD" Медок теряет равновесие и падает (при записи сразу, иногда при чтении).
Может кто сталкивался с решением.
Буду признателен за совет.

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 24 листопада 2016, 23:25

Встречал такое на сетевых Медках, на локальных - никогда.

PsAnc
Повідомлень: 5
З нами з: 24 листопада 2016, 14:22

Re: Доступ к МедКу через объекты

Повідомлення PsAnc » 24 листопада 2016, 23:32

Верно, сетевое.
Удавалось справиться с проблемой?

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 25 листопада 2016, 01:13

Нет, не удавалось. Видимо, проблема в самой реализации СОМ технологии Медка. Ее дорабатывать нужно.
П.С. делал такое извращенство, - разворачивал локальный Медок на другом компе, на первом тушил службу и подкидывал базу второму, где успешно делал свои манипуляции, возвращал базу, и запускал службу сетевого Медка снова. Все это конечно в нерабочее время. А что делать... нормальной реализации по чтению/записи таблиц CARD, FORM (на других не пробовал, но похоже дело не в таблицах а службе или СОМ технологии совместно со службой) не реализовали и похоже не собираются.

PsAnc
Повідомлень: 5
З нами з: 24 листопада 2016, 14:22

Re: Доступ к МедКу через объекты

Повідомлення PsAnc » 25 листопада 2016, 07:50

Спасибо огромное, что поделились опытом.
Теперь понимаю, что это проблемы не с моим софтом.
Но как решать? пока в недоумении :(
Похоже придется менять идею или писать кучу ненужного кода :cry:

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 25 листопада 2016, 10:10

Таблицу CARD на запись это серьезно :D Используйте методы создания документов, они корректно запишут документ в CARD (OpenOrCreateByExDocID, как основной).
Чтение лучше тоже выполнять методами АПИ: DocumentsDataSet и GetPrimaryReestr.
Примечание: второй метод сырой,
- не выбирает акцизные накладные, о чем информировал разработчиков, и которые конечно не считают нужным отреагировать;
- нет возможности фильтровать не по дате документа, а дате регистрации.
Мне лично редактирование таблиц напрямую понадобилось всего пару раз. Вообще для этих целей рекомендуется IBExpert, просто хотел сделать обработку которой бы могли пользоваться бухгалтера. Им напрямую давать доступ к базе конечно нельзя. Накоммитят свои делайты, потом пойми что было :)

PsAnc
Повідомлень: 5
З нами з: 24 листопада 2016, 14:22

Re: Доступ к МедКу через объекты

Повідомлення PsAnc » 25 листопада 2016, 10:39

Да я в общем-то не собираюсь с "CARD" делать что-либо неприличное :)
Но в ней живет ExDocId и родить его там я могу только методом OpenOrCreateByExDocID.
А если документ создан интерактивно или пришел от контрагента?
И я хочу создать его автоматом в 1С.
Ну, к примеру, прислал мне поставщик счет на оплату.
Я хочу это событие отследить в авторежиме, и создать счет в 1С автоматом.
Скажете, что извращение? Так а в чем тогда идея ЭДО? В экономии бумаги?

Можно привязываться к чему-то другому - (CardCode, DocId).
Я не против, но тогда методы, работающие через ExDocId, не подходят.
Нужно выкручиваться. Что не всегда возможно, как например, Show.
Можно придумать как обойти. Только это через пень-колоду.

Какой-то СОМ-инстумент слегка костыльный выходит.

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Доступ к МедКу через объекты

Повідомлення PetroP » 25 листопада 2016, 10:43

PetroP писав:Подскажите, каким драйвером пользуетесь и какая строка подключения? Давненько работал, сейчас в Вин10 что-то не могу найти подход...
Выделил время и разобрался.
Вот с такими параметрами все заработало | Показать
* классический сервер (с суперсервером не экспериментировал, но тоже должно работать);
* как сервис, а не приложение (в этом была проблема);
* копировать библиотеку в системный каталог;
* классическое название библиотеки (и в этом была проблема).

PetroP
Повідомлень: 714
З нами з: 22 січня 2015, 18:50

Re: Доступ к МедКу через объекты

Повідомлення PetroP » 25 листопада 2016, 10:50

PsAnc, делать прямую запись в БД в таких случаях - потенциально нарываться на кончину такой БД.
Понятное дело, что реализованные методы не успевают за запрошенными. Но если даже не запрашивать, то ничего с места не сдвинется.

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 25 листопада 2016, 10:57

PsAnc
Золотые слова, Юрий Бенедиктович... два года назад обращался с этим вопросом к разработчикам. И вроде даже Геннадий кинул ссылку разрабам. А они видимо забили.
Тема: Необходимы новые методы
Сообщение ОТ: 04 мар 2015, 10:15
Продолжаем:
Необходим метод, который присвоит и сохранит ExDocID входящему документу, параметром может выступать Dic_ID датасета GetPrimaryReestr(). Очередной костыль найден в виде чтения/записи таблицы CARD, но он работает нестабильно на больших базах, и в сетевой среде. Необходима реализация со стороны разработчика.
| Показать
П.С. можно напомнить разработчикам о таких достижениях науки и техники, как Skype, личка, телефон, Viber, фейсбук. Вопросы решаются гораздо быстрее и качественнее, когда они обсуждаются и существует feedback (обратная связь). Уже прошло много времени, а обратной связи не было еще ни с одним из моих виртуальных коллег-автоматизаторов 1С, которые обращались с вопросами/предложениями (да, мы держим руку на пульсе современных разработок и делимся опытом постоянно).
А чтобы в бочку дягтя добавить ложку Меда (да-да, вам не послышалось), - лично обещаю большую мясную пицуу и ящик пива тому специалисту-разработчику, который наконец-то займется интеграцией 1С + мое радушие на просторах соцсетей :)

PsAnc
Повідомлень: 5
З нами з: 24 листопада 2016, 14:22

Re: Доступ к МедКу через объекты

Повідомлення PsAnc » 25 листопада 2016, 11:13

Почитал старые сообщения из этой темы.
Раньше такой специалист (ответственный по удовлетворению потребностей программистов) был. :D
И судя по написанному обратная связь таки работала.
А сейчас не вижу.
Хотя опыт тех, кто реально вредряет разработанное, он же бесценный (потому, что за него платить не нада)
Берите и пользуйтесь. Заплатите только зарплату своему сотруднику.

В общем, присоединяюсь и готов от себя лично и пиццу и пиво )))

Напишу конечно разработчикам тоже. Хотя бы для количества запросов.
Может когда-то и отреагируют.

vatikan
Повідомлень: 8
З нами з: 22 листопада 2016, 18:32

Re: Доступ к МедКу через объекты

Повідомлення vatikan » 25 листопада 2016, 15:49

Подскажите кто знает. Работаю с медком через odbc, как отличить входящий документ от исходящего, не вижу в таблице CARD такого признака. Мне нужно отличить Входящую акцизную накладную от Исходящей?

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 25 листопада 2016, 16:36

Вот если бы метод GetPrimaryReestr() содеражал кроме обычных накладных еще и акцизные, не пришлось бы делать через... CARD

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Доступ к МедКу через объекты

Повідомлення Inkognito » 28 листопада 2016, 14:22

vatikan
А впрочем, я вижу при создании нового шаблона новые, не описанные типы документов. В том числе - акцизную накладную.
Значит, у нее есть и свой код типа, а значит GetPrimaryReestr() должен корректно найти акцизные накладные. Это нас неактуализированная справка вводит в заблуждение.
Выход,- нужно звонить и спрашивать, какого лешего не обновлена инструкция, и какой код DocType соответствует "Акцизной накладной".
Отличить входящую от исходящей будет возможно, используя данный метод GetPrimaryReestr()

Відповісти

Повернутись до “1C”