Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дополнительные колонки
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Ardi
Допустим есть журнал "Реализация". В требуется вывести дополнительные колонки.
Наподобие "Есть расходный ордер", "Возврат", "Перечень номенклатуры документа", "Есть ПКО", "Есть банк" и т.д.
Делать это запросами к куче таблиц надоело.

Хочется завести какой нибудь вспомогательный объект для хранения данных и изменять его подписками на события например.
Подскажите чего нибудь хорошего.
logist
Регистр сведений: измерение - Объект, ресурсы - необходимые значения.
Vofka
Мне кажется, что лучше написать 1 раз нормальный запрос, в который будет легко добавлять новые данные, чем создавать новые объекты метаданных для этого. Потому как для запонения того же регистра сведений всеравно прийдется делать
Цитата(Ardi @ 16.09.13, 17:32) необходимо зарегистрироваться для просмотра ссылки
запросами к куче таблиц
logist
Цитата(Vofka @ 17.09.13, 8:50) необходимо зарегистрироваться для просмотра ссылки
Потому как для запонения того же регистра сведений всеравно прийдется делать

Цитата(Ardi @ 16.09.13, 17:32) необходимо зарегистрироваться для просмотра ссылки
изменять его подписками на события например.

При записи того или иного документа делается запись в регистр, какие еще запросы?
Vofka
Цитата(logist @ 17.09.13, 9:04) необходимо зарегистрироваться для просмотра ссылки
При записи того или иного документа делается запись в регистр, какие еще запросы?

Для того, чтобы данные записать в нужном виде их необходимо как-то/откуда-то получить. "Как-то" - это скорей всего с использованием запросов. Ваш Кэп. 32542460.gif
logist
Данные в нужном виде это и есть документ Источник события. который, например, по полю Основание = Объект в РС запишет данные о себе. Не надо никаких запросов.
Vofka
Цитата(logist @ 17.09.13, 9:43) необходимо зарегистрироваться для просмотра ссылки
Данные в нужном виде это и есть документ Источник события. который, например, по полю Основание = Объект в РС запишет данные о себе. Не надо никаких запросов.

Берем УТ. Вы говорите, что эти данные:
Цитата(Ardi @ 16.09.13, 17:32) необходимо зарегистрироваться для просмотра ссылки
Наподобие "Есть расходный ордер", "Возврат", "Перечень номенклатуры документа", "Есть ПКО", "Есть банк" и т.д.

можно взять из источника события, т.е. в данном случае из расходной накладной? Как же...
logist
"Есть расходный ордер" - при записи Источника ордера в нем же есть ссылка на документ Объект? При записи Источника возврата в нем же есть ссылка на документ Объект?....

Я говорю о том, что записи в регистр должен делать не сам Объект, а документы которые связаны с этим Объектом по полю которое определяет связь.
Ardi
Цитата(logist @ 17.09.13, 11:59) необходимо зарегистрироваться для просмотра ссылки
Я говорю о том, что записи в регистр должен делать не сам Объект, а документы которые связаны с этим Объектом по полю которое определяет связь.

Именно. (Например ПКО вводится на основании РН. Центральным документом сделки будет заказ либо РН если заказ не заполнен).

И я спрашиваю какие есть интересные варианты в каком дополнительном объекте хранить связанную инфу.
Пока только одно предложение.
Vofka
А, ну я знач не так изначально понял. Тогда, тут только 1 вариант может быть: только регистр сведений. Если сделать как по проще, то выше logist вариант озвучил. Но можно сделать по сложнее, но, по-моему, красивше будет: сделать 2 измерения Объект и НазваниеДопКолонки. Название доп. колонки - это может быть какое-то перечисление либо какой-то справочник. Работать с такой структурой будет сложнее, за то структура хранения данных будет корректнее и без излишек, я считаю.
python
Vofka, какой тогда тип данных у значения регистра сведений будет? И как оно потом в БД хранится?

А отборы планируется строить по этим колонкам дополнительным?
Vofka
python, я не знаю конечной цели, мог бы предположить, что на все хватит типа "строка". Если тип должен быть разный, тогда использовать план видов характеристик (по типу как настройки пользователя сделаны).
Ardi
Цитата(Vofka @ 17.09.13, 13:01) необходимо зарегистрироваться для просмотра ссылки
сделать 2 измерения Объект и НазваниеДопКолонки

При пометке на удаление ПКО запись из регистра удалится. А если ПКО 2 штуки - то одна запись должна остаться.


Цитата(python @ 17.09.13, 13:36) необходимо зарегистрироваться для просмотра ссылки
А отборы планируется строить по этим колонкам дополнительным?

А если вдруг потребуется - то тогда какие объекты использовать?
Vofka
Цитата(Ardi @ 17.09.13, 13:47) необходимо зарегистрироваться для просмотра ссылки
При пометке на удаление ПКО запись из регистра удалится. А если ПКО 2 штуки - то одна запись должна остаться.

Тогда 3 измерения: Регистратор, ВладелецСвойства (расходная накладная, в данном случае), Свойство.
Zaval
Цитата(Ardi @ 17.09.13, 13:47) необходимо зарегистрироваться для просмотра ссылки
При пометке на удаление ПКО запись из регистра удалится. А если ПКО 2 штуки - то одна запись должна остаться.


А что дает сам факт наличия ПКО? Или возврата?
По-доброму нужно примероно так
Заказ
Отгружено на ... грн
Оплачено на ... грн
Выписано НН на ... грн
Возврат на ... грн

А еще лучше сразу выводить отклонения? нпр "недовыписано НН на ... грн. Тогда юзеру не придется вчитываться в цифры и сравнивать их.
Или не цифры, а колечки, как в УНФ.
python
Какова все же цель этих реквизита? Тип данных содержания?
Если текстовая метка для журнала - так можно просто регистр сведений, и значение каждой из колонок отдельно для объекта хранить. Придется менять метаданные - это да. Но и код для извлечения и вывода данных будет проще. В принципе - и тип данных может быть разным...
Неопределенный тип данных значения и вид свойства в измерении - 1с создаст несколько полей для хранеия каждого из типов значения, не хорошо это.

Еще вариант - значения хранить в отдельном справочнике, пусть даже текстовые. Тогда и отборы можно будет строить.
Домовик
нужно нарисовать дерево всех возможных решений, отталкиваясь от центрального документа. Обозвать каждую точку-состояние как-то и описать, чтоб понятно было пользователю (пример "РН-Возврат-РКО"). При совершении события (проведении дока, пометке на удал, снятии пометки на удал,.... ) изменяем точку-состояние, на другую точку-состояние (точки-состояния хранятся не знаю где). В журнале "Реализация" ссылка на точку-состояние.

Zaval
Цитата(Vofka @ 17.09.13, 13:01) необходимо зарегистрироваться для просмотра ссылки
сделать 2 измерения Объект и НазваниеДопКолонки. Название доп. колонки - это может быть какое-то перечисление либо какой-то справочник. Работать с такой структурой будет сложнее, за то структура хранения данных будет корректнее и без излишек, я считаю.

Думаю, так лучше не делать. Есть пример - РС КонтактнаяИнформация в типовых. Вначале было хорошо, теперь получился этакий монстрик.

Других предложений по объекту хранения данных не будет, logist выдал единственно правильное.
Принять его мешает то, что придется писать запрос по двум таблицам - т. е. данные хранятся неоптимально с точки зрения удобства извлечения.
Но это беда не решения, а постановки задачи.
Строго говоря, это надевание седла на корову - форма списка документа хороша для решения своих задач.
По-моему, лучше использовать форму списка того самого РС, в который все документы сами о себе все запишут.
Если одного РС будет мало - тогда отчет формоспископодобного вида.

Цитата(Домовик @ 17.09.13, 15:20) необходимо зарегистрироваться для просмотра ссылки
нужно нарисовать дерево всех возможных решений, отталкиваясь от центрального документа. Обозвать каждую точку-состояние как-то и описать, чтоб понятно было пользователю (пример "РН-Возврат-РКО"). При совершении события (проведении дока, пометке на удал, снятии пометки на удал,.... ) изменяем точку-состояние, на другую точку-состояние (точки-состояния хранятся не знаю где). В журнале "Реализация" ссылка на точку-состояние.


Дерево получится, нпр, для статуса документа. Оплату и возврат в одно дерево не запихнешь.
python
А не лучше ли заменить журнал на обработку?
Vofka
Цитата(Zaval @ 17.09.13, 15:39) необходимо зарегистрироваться для просмотра ссылки
Думаю, так лучше не делать.

Почему?
Домовик
Цитата(Zaval @ 17.09.13, 10:39) необходимо зарегистрироваться для просмотра ссылки
Дерево получится, нпр, для статуса документа. Оплату и возврат в одно дерево не запихнешь.



я, наверное, не понимаю, что имеется в виду у вас.

у меня "точка-состояние" - это не событие (оплата или возврат), а комбинация,(или последовательность) событий.

как у любого дерева : одной точке будет соответствовать предыдущая точка, и несколько возможных следующих точек (в том числе и предыдущ).

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


но нужно предусмотреть вариант частичных оплат, отгрук..
Zaval
Более сложно выдергивать данные.
Скорее всего, это только начало. Юзерам понравится, начнут еще придумывать smile.gif
Да и без этого, получится длиннющий РС, по которому будут одновременно топтаться все юзеры
Vofka
Цитата(Zaval @ 17.09.13, 16:54) необходимо зарегистрироваться для просмотра ссылки
Более сложно выдергивать данные.

В чем сложность?

Цитата(Zaval @ 17.09.13, 16:54) необходимо зарегистрироваться для просмотра ссылки
Скорее всего, это только начало. Юзерам понравится, начнут еще придумывать smile.gif
Да и без этого, получится длиннющий РС, по которому будут одновременно топтаться все юзеры

Не вижу проблем с этим. За то в обмен не будет излишних данных.

В случае регистра с контактной информацией - его беда в том, что поля называются Поле1, Поле2 ... ПолеN. Регистр этот был бы нормальным если бы поля назывались человекопонтяно либо если бы ресурс был 1, а взамен было 1 дополнительное измерение, которое идентифицировало бы конкретную составляющую адреса. Да, может быть тогда запрос получится не просто "ВЫБРАТЬ * ИЗ Регистр", может быть он будет дольше выполняться, за то в таблице базы данных все данные будут согласованы и не будет мусора. Это мое мнение.
Домовик
имея дерево состояний нельзя будет, к примеру, просто так пометить на удаление документ, на котором завязаны другие документы. потому-что они будут уровнем ниже в дереве. также нельзя будет ввести просто так РКО, когда будет БВ с таким же движением. так как это тоже будет "перескок" на другую ветку.



ну в общем, да. я не программирую, поэтому не могу подать предметно это все дело. поэтому про зайчиков, что хотят стать ёжиками.
Zaval
Домовик, я вот о чем.
Состояние,нпр, "оплачен+отгружен+отправленыБухДокументы" может быть достигнуто разными путями - разная последовательность событий. Это уже не дерево, в дереве путь между двумя точками уникален.
Домовик
ну вообще-то изначалоьно имелось в виду, что "оплачен-отгружен-отправленыБухДокументы" и "отгружен-оплачен-оправленыБУхДокументы" -два разных состояния. состояния сохраняют история событий, но состав событий у них один и тот же.

дерево это ж вид графа. значит просто граф. направленный граф.

есть логика в связи между событиями. т. е . "Оплата нам" ожидает "Отгрузку от нас"(и наоборот) . состояние характеризуется еще тем, что оно может быть завершенными и незавершенным. В случае возврата оно из стадии завершенного может перейти в незвершенное.

т. е уже формируются понятия

-событие (может исполняться разными документами)
-состояние (характеризуетс набором событий, направленностью событий , завершенностью/ незавершенностью)


вобщем, логику по которой бухгалтера отслеживают движения документов, можно также программно задать. Не только задавать механизми отслеживания.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.