|
Логика контроля изменений в самописном обмене | ☑ | ||
---|---|---|---|---|
0
CaIIIka
09.09.15
✎
11:27
|
Здравствуйте! Есть самописная база 1с8. Схемотично структура:
Справочник.Товары РегистрСведений.ЦеныТоваров РегистрНакопления.ОстаткиТоваров ПланОбмена.Основной (включена авторегистрация по вышеперечисленным объектам) Есть три узла плана обмена с различными настройками: выгружать товары, выгружать цены, выгружать остатки. Расписание выгрузки у них тоже различное. С регистрацией изменений затык. Из таблиц Справочник.Товары.Изменения и РегистрСведений.ЦеныТоваров.Изменения можно вытащить измененные товары (как поле) и указать их в условии запроса для отбора. Например во временной таблице среза последних цен только по измененным позициям: Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ЦеныТоваров.Товар.Ссылка КАК ИдТовара, | ЦеныТоваров.ВидЦены.Ссылка КАК ИдТипаЦены, | ЦеныТоваров.Цена КАК Цена, | ЦеныТоваров.Валюта.Наименование |ИЗ | РегистрСведений.ЦеныТоваров.СрезПоследних( | &ТекДата, | ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ Товар.Ссылка В | (ВЫБРАТЬ | ЦеныТоваровИзменения.Товар | ИЗ | РегистрСведений.ЦеныТоваров.Изменения КАК ЦеныТоваровИзменения | ГДЕ | ЦеныТоваровИзменения.Узел = &Узел) | КОНЕЦ) КАК ЦеныТоваров | |УПОРЯДОЧИТЬ ПО | ИдТовара, | ИдТипаЦены"; С остатками засада получилась. В таблице РегистрНакопления.ОстаткиТоваров.Изменения нет поля "Товар", а есть поле "Регистратор". В таблице РегистрНакопления.ОстаткиТоваров.Остатки нет поля "Регистратор". Можно выйти из положения, убрав авторегистрацию с регистра накопления вообще, и регистрировать изменения справочника "Товары" в модуле набора записей регистра накопления "Остатки товаров" при записи движений остатков любыми объектами БД. А при выгрузке остатков из регистра смотреть отбор по таблице Справочник.Товары.Изменения. Но как тогда очищать изменения? Ведь расписание выгрузки самого справочника и остаков у каждого свое. Почищу при выгрузке товаров - не выгрузятся остатки, и наоборот. Направьте пожалуйста на путь истинный... Извиняюсь если где и было уже, но порылся, не нашел. Везде правильность выборки или поля запросов обсуждают, а мне другое нужно. |
|||
1
CaIIIka
09.09.15
✎
11:40
|
Создавать дополнительные объекты БД и всяческие таблицы для контроля нежелательно. Хотелось бы узнать как правильно сделать, дабы огород не городить.
Пытался было получить остатки для выгрузки через таблицу ОстаткиИОбороты с конечным остатком и периодичностью Регистратор, но поле Регистратор нельзя использовать в условии виртуальной таблицы регистра накопления (чтобы сравнить с наличием Регистратора в таблице изменений этого регистра). |
|||
2
CaIIIka
10.09.15
✎
11:26
|
Громоздкий вопрос получился чтоли??
Подскажите пожалуйста где и как правильно брать измененные движения документов из регистра накопления в разрезе товаров? Нужно для выгрузки текущих остатков на сайт по тем товарам, по которым движения были с момента последнего обмена. Не работаю с типовыми конфами вообще. Залез посмотреть как там сделано, мозг опух напрочь... Не вкурю как правильно с изменениями регистра накопления работать. Где посмотреть изменения в разрезе движений. В таблице регистрации изменений у регистра накопления только ссылка на регистратор. Неужели выборкой по таб части регистратора, который в этой таблице засветился?? |
|||
3
ДенисЧ
10.09.15
✎
11:27
|
в разрезе отдельных движений не увидишь. Только в разрезе набора записей
|
|||
4
CaIIIka
10.09.15
✎
11:33
|
где взять этот набор записей?
|
|||
5
CaIIIka
10.09.15
✎
11:35
|
движения каждого документа из таблицы изменений выбирать?
|
|||
6
CaIIIka
10.09.15
✎
11:38
|
всмысле движения документов, которые в этой таблице засветились
|
|||
7
kosts
10.09.15
✎
11:55
|
В типовом обмене по правилам. Вроде, если в конфигурацию Конвертация скинуть структуру содержащую движения (т.е. при выгрузке структуры снять галочки "не выгружать движения"), то можно настроить обмен движениями аналогично табличной части.
|
|||
8
CaIIIka
10.09.15
✎
11:59
|
(7) хм, конвертацией не пользуюсь, обмен руками с нуля пишу. Все было ОК, пока до остатков не дошел. Сейчас нужно получить остатки товаров с отбором по товарам, по которым движения были с момента последнего обмена данными.
|
|||
9
kosts
10.09.15
✎
12:23
|
||||
10
CaIIIka
10.09.15
✎
14:01
|
Вопрос :)
Как получить остатки товаров с отбором по товарам, по которым движения были с момента последнего обмена данными? Таблица 1: РегистрНакопления.ОстаткиТоваров.Остатки Товар Склад КоличествоОстаток Таблица 2: РегистрНакопления.ОстаткиТоваров.Изменения Узел НомерСообщения Регистратор (подразумевается наличие таблицы "Товары" -> Товар, Количество) Можно как-то использовать таблицу 2 в качестве отбора для таблицы 1? Т.е. получить список товаров из второй таблицы (движения в разрезе товаров или набор записей с движениями этих товаров), по которым были движения в последнее время. |
|||
11
Михаил Козлов
10.09.15
✎
14:17
|
Может такая схема подойдет:
- регистрировать только номенклатуру (при изменении ее самой, цен и остатков); - в выгрузку вместе с товарами помещать цены и остатки; - при получении квитка удалять регистрацию. Мне кажется, примерно так был устроен обмен с сайтом в УТ 10.3. |
|||
12
CaIIIka
10.09.15
✎
14:20
|
(11) Спасибо, но в (0) я писал:
Можно выйти из положения, убрав авторегистрацию с регистра накопления вообще, и регистрировать изменения справочника "Товары" в модуле набора записей регистра накопления "Остатки товаров" при записи движений остатков любыми объектами БД. А при выгрузке остатков из регистра смотреть отбор по таблице Справочник.Товары.Изменения. Но как тогда очищать изменения? Ведь расписание выгрузки самого справочника и остаков у каждого свое. Почищу при выгрузке товаров - не выгрузятся остатки, и наоборот. |
|||
13
Михаил Козлов
10.09.15
✎
14:22
|
(12) Выгружать остатки вместе с товарами нельзя?
|
|||
14
CaIIIka
10.09.15
✎
14:23
|
Хорошо бы, но цены по одному интервалу отправляются, остатки по другому (гораздо чаще). Да и при каждом движении товара будет отправляться объект "Товар" с 50 реквизитами, а мог бы только остаток отправиться. И 1С и сайту тяжело будет при больших движениях товара.
|
|||
15
CaIIIka
10.09.15
✎
14:24
|
А когда остаток отправляется, то пишутся только УИДы товара и склада и остаток.
|
|||
16
CaIIIka
10.09.15
✎
14:33
|
О, самому идея в голову пришла:
У меня несколько узлов, у каждого своя настройка что и когда выгружать (всмысле какие объекты и с какими интервалами). Можно запретить авторегистрацию по всем объектам состава плана обмена, регить все вручную для каждого нужного узла в зависимости от ситуации (при записи товара регить узел с настройкой выгружать товары, при движении в остатках регить узел с выгрузкой остатков и т.д.). А при выгрузке по узлам все само собой расфасуется. Единственное как бы при программировании ручной регистрации в косяки не уперся... Не приходилось в ручную регить (там вроде с регистрами засада какая-то с ключевыми полями). Да и писанины гектар. Но думаю это верный путь должен быть... Остановите если кто в курсе :) |
|||
17
CaIIIka
10.09.15
✎
14:40
|
+(16) А от регистрации регистров получается вообще можно уйти. Все в Справочник.Товары регить для нужного узла
|
|||
18
Franchiser
гуру
10.09.15
✎
14:44
|
КД - религия не позволяет?
|
|||
19
CaIIIka
10.09.15
✎
14:52
|
(18) Позволяет, но смысл внедрять ее для использования (все механизмы с правилами) и использовать для выгрузки довольно простых объектов. База полностью нетиповая самописная и с КД не дружит. Тем более это же не ручная выгрузка, а по регламенту на сервере каждые 5 минут например. Прошу прощения если я не в ту степь. Возможно с 2010 года все изменилось (именно тогда я проходил курс обучения по обмену, где частью его была КД). Там описывалось как создать обмен по-быстрому на коленках и не очень быстрый по ресурсам.
|
|||
20
Franchiser
гуру
10.09.15
✎
19:04
|
Не очень понятна проблема, если я не ошибаюсь в таблице регистраций изменений информация хранится по узлам плана обмена, или не так?
Можно очищать наверно ненужные регистрации для каждого плана обмена. |
|||
21
Franchiser
гуру
10.09.15
✎
19:06
|
(19) объединить твою конфу с бсп в этой части думаю займет не больше часа
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |