Доступ к МедКу через объекты
Re: Доступ к МедКу через объекты
Фига себе задачка...
Вообще непонятно, зачем Вам наибольший номер, когда 1С сама нумерует автоинкрментом. Разве что пара нерадивых пользователей вручную создают, вместо выгрузки из 1С. Если так, то лучше всех посадить на 1С, да и спокойно выгружать из нее. Тогда технические вопросы вообще исчезнут.
Вообще непонятно, зачем Вам наибольший номер, когда 1С сама нумерует автоинкрментом. Разве что пара нерадивых пользователей вручную создают, вместо выгрузки из 1С. Если так, то лучше всех посадить на 1С, да и спокойно выгружать из нее. Тогда технические вопросы вообще исчезнут.
Re: Доступ к МедКу через объекты
Подскажите, это через ODBC?Inkognito писав:SELECT card.code
FROM card
WHERE code=(SELECT MAX(card.code) FROM card) and card.form='12740'
Re: Доступ к МедКу через объекты
To PetroP, да
Re: Доступ к МедКу через объекты
Подскажите, каким драйвером пользуетесь и какая строка подключения? Давненько работал, сейчас в Вин10 что-то не могу найти подход...
Re: Доступ к МедКу через объекты
Код: Виділити все
ПутьКБазеДанных = "C:\ProgramData\Medoc\Medoc\db\ZVIT.FDB";
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = Вычислить(Шаблон("driver={Firebird/InterBase(r) driver};uid=SYSDBA;pwd=masterkey;database="+ПутьКБазеДанных+";"));
Попытка
Соединение.Open();
Исключение
Сообщить("Не удалось подключиться к базе: " + ОписаниеОшибки());
Возврат 0;
КонецПопытки;
Я ставил Firebird_ODBC_2.0.3.154_Win32.exe
Re: Доступ к МедКу через объекты
Да, все так. Видно с разрядностью проблемы...
Re: Доступ к МедКу через объекты
Привет знатокам!
Пытаюсь побороть проблему:
После обращения к справочнику "CARD" Медок теряет равновесие и падает (при записи сразу, иногда при чтении).
Может кто сталкивался с решением.
Буду признателен за совет.
Пытаюсь побороть проблему:
После обращения к справочнику "CARD" Медок теряет равновесие и падает (при записи сразу, иногда при чтении).
Может кто сталкивался с решением.
Буду признателен за совет.
Re: Доступ к МедКу через объекты
Встречал такое на сетевых Медках, на локальных - никогда.
Re: Доступ к МедКу через объекты
Верно, сетевое.
Удавалось справиться с проблемой?
Удавалось справиться с проблемой?
Re: Доступ к МедКу через объекты
Нет, не удавалось. Видимо, проблема в самой реализации СОМ технологии Медка. Ее дорабатывать нужно.
П.С. делал такое извращенство, - разворачивал локальный Медок на другом компе, на первом тушил службу и подкидывал базу второму, где успешно делал свои манипуляции, возвращал базу, и запускал службу сетевого Медка снова. Все это конечно в нерабочее время. А что делать... нормальной реализации по чтению/записи таблиц CARD, FORM (на других не пробовал, но похоже дело не в таблицах а службе или СОМ технологии совместно со службой) не реализовали и похоже не собираются.
П.С. делал такое извращенство, - разворачивал локальный Медок на другом компе, на первом тушил службу и подкидывал базу второму, где успешно делал свои манипуляции, возвращал базу, и запускал службу сетевого Медка снова. Все это конечно в нерабочее время. А что делать... нормальной реализации по чтению/записи таблиц CARD, FORM (на других не пробовал, но похоже дело не в таблицах а службе или СОМ технологии совместно со службой) не реализовали и похоже не собираются.
Re: Доступ к МедКу через объекты
Спасибо огромное, что поделились опытом.
Теперь понимаю, что это проблемы не с моим софтом.
Но как решать? пока в недоумении
Похоже придется менять идею или писать кучу ненужного кода
Теперь понимаю, что это проблемы не с моим софтом.
Но как решать? пока в недоумении
Похоже придется менять идею или писать кучу ненужного кода
Re: Доступ к МедКу через объекты
Таблицу CARD на запись это серьезно Используйте методы создания документов, они корректно запишут документ в CARD (OpenOrCreateByExDocID, как основной).
Чтение лучше тоже выполнять методами АПИ: DocumentsDataSet и GetPrimaryReestr.
Примечание: второй метод сырой,
- не выбирает акцизные накладные, о чем информировал разработчиков, и которые конечно не считают нужным отреагировать;
- нет возможности фильтровать не по дате документа, а дате регистрации.
Мне лично редактирование таблиц напрямую понадобилось всего пару раз. Вообще для этих целей рекомендуется IBExpert, просто хотел сделать обработку которой бы могли пользоваться бухгалтера. Им напрямую давать доступ к базе конечно нельзя. Накоммитят свои делайты, потом пойми что было
Чтение лучше тоже выполнять методами АПИ: DocumentsDataSet и GetPrimaryReestr.
Примечание: второй метод сырой,
- не выбирает акцизные накладные, о чем информировал разработчиков, и которые конечно не считают нужным отреагировать;
- нет возможности фильтровать не по дате документа, а дате регистрации.
Мне лично редактирование таблиц напрямую понадобилось всего пару раз. Вообще для этих целей рекомендуется IBExpert, просто хотел сделать обработку которой бы могли пользоваться бухгалтера. Им напрямую давать доступ к базе конечно нельзя. Накоммитят свои делайты, потом пойми что было
Re: Доступ к МедКу через объекты
Да я в общем-то не собираюсь с "CARD" делать что-либо неприличное
Но в ней живет ExDocId и родить его там я могу только методом OpenOrCreateByExDocID.
А если документ создан интерактивно или пришел от контрагента?
И я хочу создать его автоматом в 1С.
Ну, к примеру, прислал мне поставщик счет на оплату.
Я хочу это событие отследить в авторежиме, и создать счет в 1С автоматом.
Скажете, что извращение? Так а в чем тогда идея ЭДО? В экономии бумаги?
Можно привязываться к чему-то другому - (CardCode, DocId).
Я не против, но тогда методы, работающие через ExDocId, не подходят.
Нужно выкручиваться. Что не всегда возможно, как например, Show.
Можно придумать как обойти. Только это через пень-колоду.
Какой-то СОМ-инстумент слегка костыльный выходит.
Но в ней живет ExDocId и родить его там я могу только методом OpenOrCreateByExDocID.
А если документ создан интерактивно или пришел от контрагента?
И я хочу создать его автоматом в 1С.
Ну, к примеру, прислал мне поставщик счет на оплату.
Я хочу это событие отследить в авторежиме, и создать счет в 1С автоматом.
Скажете, что извращение? Так а в чем тогда идея ЭДО? В экономии бумаги?
Можно привязываться к чему-то другому - (CardCode, DocId).
Я не против, но тогда методы, работающие через ExDocId, не подходят.
Нужно выкручиваться. Что не всегда возможно, как например, Show.
Можно придумать как обойти. Только это через пень-колоду.
Какой-то СОМ-инстумент слегка костыльный выходит.
Re: Доступ к МедКу через объекты
Выделил время и разобрался.PetroP писав:Подскажите, каким драйвером пользуетесь и какая строка подключения? Давненько работал, сейчас в Вин10 что-то не могу найти подход...
- Вот с такими параметрами все заработало | Показать
Re: Доступ к МедКу через объекты
PsAnc, делать прямую запись в БД в таких случаях - потенциально нарываться на кончину такой БД.
Понятное дело, что реализованные методы не успевают за запрошенными. Но если даже не запрашивать, то ничего с места не сдвинется.
Понятное дело, что реализованные методы не успевают за запрошенными. Но если даже не запрашивать, то ничего с места не сдвинется.
Re: Доступ к МедКу через объекты
PsAnc
Золотые слова, Юрий Бенедиктович... два года назад обращался с этим вопросом к разработчикам. И вроде даже Геннадий кинул ссылку разрабам. А они видимо забили.
Тема: Необходимы новые методы
Сообщение ОТ: 04 мар 2015, 10:15
Золотые слова, Юрий Бенедиктович... два года назад обращался с этим вопросом к разработчикам. И вроде даже Геннадий кинул ссылку разрабам. А они видимо забили.
Тема: Необходимы новые методы
Сообщение ОТ: 04 мар 2015, 10:15
Продолжаем:
Необходим метод, который присвоит и сохранит ExDocID входящему документу, параметром может выступать Dic_ID датасета GetPrimaryReestr(). Очередной костыль найден в виде чтения/записи таблицы CARD, но он работает нестабильно на больших базах, и в сетевой среде. Необходима реализация со стороны разработчика.
- | Показать
Re: Доступ к МедКу через объекты
Почитал старые сообщения из этой темы.
Раньше такой специалист (ответственный по удовлетворению потребностей программистов) был.
И судя по написанному обратная связь таки работала.
А сейчас не вижу.
Хотя опыт тех, кто реально вредряет разработанное, он же бесценный (потому, что за него платить не нада)
Берите и пользуйтесь. Заплатите только зарплату своему сотруднику.
В общем, присоединяюсь и готов от себя лично и пиццу и пиво )))
Напишу конечно разработчикам тоже. Хотя бы для количества запросов.
Может когда-то и отреагируют.
Раньше такой специалист (ответственный по удовлетворению потребностей программистов) был.
И судя по написанному обратная связь таки работала.
А сейчас не вижу.
Хотя опыт тех, кто реально вредряет разработанное, он же бесценный (потому, что за него платить не нада)
Берите и пользуйтесь. Заплатите только зарплату своему сотруднику.
В общем, присоединяюсь и готов от себя лично и пиццу и пиво )))
Напишу конечно разработчикам тоже. Хотя бы для количества запросов.
Может когда-то и отреагируют.
Re: Доступ к МедКу через объекты
Подскажите кто знает. Работаю с медком через odbc, как отличить входящий документ от исходящего, не вижу в таблице CARD такого признака. Мне нужно отличить Входящую акцизную накладную от Исходящей?
Re: Доступ к МедКу через объекты
Вот если бы метод GetPrimaryReestr() содеражал кроме обычных накладных еще и акцизные, не пришлось бы делать через... CARD
Re: Доступ к МедКу через объекты
vatikan
А впрочем, я вижу при создании нового шаблона новые, не описанные типы документов. В том числе - акцизную накладную.
Значит, у нее есть и свой код типа, а значит GetPrimaryReestr() должен корректно найти акцизные накладные. Это нас неактуализированная справка вводит в заблуждение.
Выход,- нужно звонить и спрашивать, какого лешего не обновлена инструкция, и какой код DocType соответствует "Акцизной накладной".
Отличить входящую от исходящей будет возможно, используя данный метод GetPrimaryReestr()
А впрочем, я вижу при создании нового шаблона новые, не описанные типы документов. В том числе - акцизную накладную.
Значит, у нее есть и свой код типа, а значит GetPrimaryReestr() должен корректно найти акцизные накладные. Это нас неактуализированная справка вводит в заблуждение.
Выход,- нужно звонить и спрашивать, какого лешего не обновлена инструкция, и какой код DocType соответствует "Акцизной накладной".
Отличить входящую от исходящей будет возможно, используя данный метод GetPrimaryReestr()