В какой структуре хранить данные.

1. Andrew189100 15 21.04.14 20:25 Сейчас в теме
Просветите неофита, в какой структуре хранить данные.
Задача заключается в следующем.
Есть заказы от контрагента с несколькими филиалами. Число филиалов не фиксированное.
Каждый филиал может прислать свой заказ на определенную дату, может нет.
Заказы приходят в виде таблицы.

Товар1 Количество
Товар2 Количество
.....
ТоварN Количество

На выходе необходимо получить агрегированный заказ в виде таблицы

Филиал1 Филиал2 ФилиалN
Товар1 5 0 12
Товар2 0 0 13
ТоварN 10 0 0

Т. е. в случае наличия в заявке конкретного филиала этого товара с ненулевым количеством, количество добавляется в соответствующий столбец.

Вопрос не в том, как это сделать. А в какой структуре(если возможно) хранить подобные данные. Табличная часть документа не подходит, т. к. количество столбцов всегда разное...
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. Uncore 1272 22.04.14 05:47 Сейчас в теме
(1) Andrew189100, а зачем эти общие данные хранить? По-моему это простейший отчет по данным заказов.
4. MarchTomCat 22.04.14 09:36 Сейчас в теме
(1) Andrew189100, какая конфигурация?

P.S. Покопайте в направлении документов ЗаказПокупателя в УТ, УПП, возможно и в других конфигурациях. Как раз ваш случай.
6. starjevschik 22.04.14 09:51 Сейчас в теме
(1) Andrew189100, табличная часть: филиал - товар - количество. И нарисовать форму, которая разложит это по колонкам. Не надо усложнять простые вещи :)
Sevens; agrustny; +2 Ответить
31. agrustny 19 29.04.14 12:46 Сейчас в теме
Да здравствует третья нормальная форма, она же ТЧ (6)!
36. Andrew189100 15 29.04.14 13:06 Сейчас в теме
(31) agrustny, В конкретном случае таблица выглядит так.

ГипермаркетОзерки 2734555 Яблоки Калибр 60+ Подложка белая 50кг. 30р.
ГипермаркетКолпино 2734555 Яблоки Калибр 60+ Подложка белая 50кг. 30р.
ГипермаркетГатрчина 2734555 Яблоки Калибр 60+ Подложка белая 50кг. 30р.

И таких строк может быть 29. Допустим. 2734555 Яблоки я засуну в справочник с привязкой к контрагент-филиал. Но остальные данные произвольные... Это и называется дублирование.
И ерничать не надо. 3 нормальная форма подразумевает простую вещь, не ключевые столбцы не должны зависеть друг от друга. Что реализовать с одной табличной, как-то сложно ;)
40. agrustny 19 29.04.14 13:31 Сейчас в теме
(36) Вот Вы уже и накосячили, как предупреждал Вас (35):

ГипермаркетОзерки 2734555 Яблоки Калибр 60+ Подложка белая 50кг. 30р.
ГипермаркетКолпино 2734555 Яблоки Калибр 60+ Подложка белая 50кг. 30р.
ГипермаркетГатрчина 2734555 Яблоки Калибр 60+ Подложка белая 50кг. 30р.

В результате на выходе у Вас будут Тыблоки, Грейпфрукты, Тыборги и Арониенбаумы
Набивают то узбеки, в лучшем случае - макаки.
Согласно пожеланиям (38) я завязываю.
Потратьте неделю, пройдите курсы 1С-Азы прогр
7. jigourt 31 22.04.14 10:05 Сейчас в теме
(1) Andrew189100, а почему не отдельная заявка для отдельного филиала?
41. agrustny 19 29.04.14 13:33 Сейчас в теме
(1)
Просветите неофита

Свят!Свят!Свят!
2. TMV 14 21.04.14 21:18 Сейчас в теме
Как раз табличная часть и подходит. Смотрите пример в документе "Установка цен номенклатуры" в УТ10.3
agrustny; ipoloskov; +2 Ответить
5. markgenuine 22.04.14 09:49 Сейчас в теме
Достаточно сделать обработку для загрузки заказов из файла, я так понял что из excel?
Там просто пробежаться по файлу, сформировать ТаблицуЗначений и потом ее обойти и создать столько документов и с такими данными которые нужно. Зачем вы придумываете велосипед с треугольными колесами?
8. Andrew189100 15 22.04.14 10:28 Сейчас в теме
Спасибо,всем кто откликнулся.

Я почему и спрашиваю, что, возможно, у меня мысль движется не в правильном направлении...

Конфигурация самописная.
Заказы грузятся из файла. В данном случае html.
Делать отдельную заявку на каждый филиал не хочется, т. к. после загрузки всех заказов от филиалов к каждому товару вводится комментарий, упаковка, калибры и т. д., и делать одно и то же в каждой заявке бессмысленно.
9. MarchTomCat 22.04.14 15:25 Сейчас в теме
Делать отдельную заявку на каждый филиал не хочется, т. к. после загрузки всех заказов от филиалов к каждому товару вводится комментарий, упаковка, калибры и т. д., и делать одно и то же в каждой заявке бессмысленно.

Если упаковка, калибры и т.д. жестко привязаны к товару, то может стоить их добавить в справочник? А комментарий тут уже зависит от ситуации, можно и в документе оставить.

P.S. И все-таки рекомендую глянуть одним глазом на документ ЗаказПокупателя.
Прикрепленные файлы:
10. Andrew189100 15 23.04.14 00:02 Сейчас в теме
Не подходят Заказы покупателей под данную задачу. Вообщем, добавлю я все филиалы, как колонки и буду их скрывать если заказов нет...
12. ipoloskov 162 23.04.14 08:33 Сейчас в теме
(10) Andrew189100, а если появится новый филиал, то изменять код? Посмотрите все-таки, как решена эта же задача в документе УстановкаЦенНоменклатуры. Или, если квалификации не хватает (механизм довольно сложный), тот используйте по одному документу на каждый филиал. Загружать их можно по-прежнему, из одного файла, используя обработку, которая будет создавать столько документов, сколько филиалов в файле. В обработке же можно задавать и общие параметры для всех документов - комментарий, упаковка, калибры и т.д.
13. agrustny 19 23.04.14 08:59 Сейчас в теме
Andrew189100, я боюсь, что с Вашей квалификацией опасно писать подобные вещи (ну очевидно же, что структура данных - ТЧ с 3 колонками). Если беретесь - делайте или так, или согласно данным Вам дельным советам остальными участниками обсуждения. Изобретение Франкенштейна (10) отложите до поры.
11. markgenuine 23.04.14 08:26 Сейчас в теме
Все равно удобнее для каждого филиала создавать свой заказ, потому что в будущем возможно захочешь посмотреть что отгружалось и на какой филиал, и можно будет прощще посмотреть. А так это желательно сделать создать филиалы и создать головного контрагента у них, если это сеть то все покупки идут через головной и потом отгружаются по филиалам. Почему документ Заказы покупателя не подходят?
14. jigourt 31 23.04.14 20:16 Сейчас в теме
добавлю я все филиалы, как колонки и буду их скрывать если заказов нет

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

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

и вы остались при своем мнении. возникает вопрос, а зачем тогда спрашивали? ))
15. Andrew189100 15 27.04.14 01:36 Сейчас в теме
Всем спасибо за советы. Сделал все-таки. Загрузка из html файлов. Отдельный файл на каждый филиал.
Т. к. в 1С пока не очень. Пошел знакомым путем работы с РСУБД. 3 табличные части Филиалы, Товары и Таблица связи. Потом распихиваю данные в в Таблицу значений и вывожу на УФ.

Теоретический вопрос. Если связь организовать через регистр сведений с измерениями товары, филиалы и ресурсом цена, даст ли это какое-то преимущество?
16. MarchTomCat 29.04.14 11:19 Сейчас в теме
Теоретический вопрос. Если связь организовать через регистр сведений с измерениями товары, филиалы и ресурсом цена, даст ли это какое-то преимущество?

(15) Andrew189100, зачем регистр сведений?
3 табличные части Филиалы, Товары и Таблица связи. Потом распихиваю данные в в Таблицу значений и вывожу на УФ.

Делайте также, 3 таблицы, филиал, цена с номенклатурой, и связи между ними...

P.S. Прошу за откровенность, но фигню вы сделали...
18. agrustny 19 29.04.14 11:42 Сейчас в теме
->(16)
Пошел знакомым путем работы с РСУБД.

Видимо, спец из разработчиков MSQL.
->(15)
С изобретением Франкенштейна!
17. Andrew189100 15 29.04.14 11:39 Сейчас в теме
Ну, может с точки зрения 1С и фигня. Но, это стандартная задача в СУБД. Связь многие ко многим, 3 нормальная форма.
19. Andrew189100 15 29.04.14 12:05 Сейчас в теме
Табличная часть с тремя колонками - то же самое. Только в примитивном виде с дублированием данных.
20. agrustny 19 29.04.14 12:18 Сейчас в теме
(19) С дублированием каких именно данных?
22. Sevens 6 29.04.14 12:20 Сейчас в теме
(20) подозреваю дублированием номенклатуры. Хотя в чем заключаются дублирование не понимаю)

Что-то типо:
Товар1 Филиал1 КолВо1
Товар1 Филиал2 КолВо2

Уже считает дублированием товара)
25. agrustny 19 29.04.14 12:23 Сейчас в теме
(22) Номенклатура - это, наверное, СправочникСсылка.Номенклатура, или как? :-)
27. Sevens 6 29.04.14 12:25 Сейчас в теме
(25) а фиг знает что у него за справочник =) Это я попробовал угадать, может неудачная попытка. ТС расскажет)
(26) Сорри, не проснулся :)
28. agrustny 19 29.04.14 12:27 Сейчас в теме
(27) Ну да, бог его знает, может правда клиника...
29. Sevens 6 29.04.14 12:29 Сейчас в теме
(28) Не понятно, вроде и с СУБД знаком на каком-то уровне. Но даже моего уровня хватает что б понять 1 таблица с 3мя полями намного оптимальнее 3х таблиц. И не только по объему хранимой инфы, а и для последующей её обработки.
30. agrustny 19 29.04.14 12:44 Сейчас в теме
(29),(19) Ну, если быть честными, то таки ДА, ТРИ ТАБЛИЦЫ
1) Справочник Номенклатура
2) Справочник Филиалы
3) ТЧ (6)
Бывает, что люди об одном и том же на разных языках разговаривают. Но что ни говори, терминология 1С для предметной области - очень удачная. Однако где-то неделю нужно к ней привыкать, если совсем "не в теме".
Может теперь все будет хорошо?
34. Sevens 6 29.04.14 12:56 Сейчас в теме
(30)Хм... А если 3 ТЧ, то получается 5 таблиц в СУБД
Кстати вопрос: для вывода преставления оно всё равно в справочник номенклатуры и филиалов полезет? (не в курсе просто)
То есть запрос вида:
Выбрать
ТЧ.Номенклатура,
ТЧ.Филиал,
ТЧ.Количество
ИЗ
ТЧДокумента как ТЧ

Будет ли использовать неявные соединения со справочниками филиалы и номенклатура?
37. Andrew189100 15 29.04.14 13:13 Сейчас в теме
(34) Sevens, Только филиалы. Вот живой запрос.
ВЫБРАТЬ
        Номенклатура.НомерСтроки,
	Номенклатура.ШтрихКкод,
	Номенклатура.Наименование,
	Номенклатура.ВидФасовки,
	Номенклатура.Характеристика,
	Номенклатура.ЕдИзмр,
	Филиал.Наименование КАК Магазин,
	ТаблицаСвязи.Количество
ИЗ
	Документ.Заказы.Номенклатура КАК Заказы
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Заказы.ТаблицаСвязи КАК ТаблицаСвязи
		ПО (ТаблицаСвязи.НомерНоменклатуры = Заказы.НомерСтроки)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Заказы.Филиалы КАК Филиал
		ПО (Филиал.Наименование.Код = ТаблицаСвязи.КодФилиала)

Показать
39. agrustny 19 29.04.14 13:17 Сейчас в теме
(34) Нет, только если ТЧ.Номенклатура.Наименование, тогда уже соединение
Я про дополнительные 2 таблицы не говорил, уж по крайней мере Номенклатура у нормальных людей - справочник 1С
33. Andrew189100 15 29.04.14 12:56 Сейчас в теме
(22) Sevens, Да вы основы разработки БД потрясаете....
Конечно в данном случае будет быстрее из 3 таблиц. Т. к. в операции сравнения участвуют только числа. Банальная математика, что проще сравнить строку из 30 символов. Т.е минимум 240(в идеале) бит. Или ulong 32 бита. 1С это, конечно, хорошо. Только не надо забывать, что это всего лишь программа написанная на C++
38. jigourt 31 29.04.14 13:14 Сейчас в теме
(33) Andrew189100,
1С это, конечно, хорошо. Только не надо забывать, что это всего лишь программа написанная на C++

интересная позиция, только почему-то вы придерживаетесь принципов заложенных в СУБД, а принципы заложенные в 1С не имеют значения. если они вас не устраивают, зачем тогда используете 1С. напишите свою программу на С++ со своими принципами.

к сожалению, из-за вашего непонимания принципов 1С довольно простая задача разрослась уже до популярной темы.
for-elenak; +1 Ответить
43. Andrew189100 15 29.04.14 14:00 Сейчас в теме
(38) jigourt, 1С, это прежде всего бизнес-логика. И покупают ее не из-за того, что это вершина софтостроительства, а, как-раз из наработанной бизнес-логики в соответствии с законодательством. Пока бизнес-процесс "продажи" пождразумевает связь контрагент-товар. А не контрагент-Контрагентфилиал-товар.
О каких принципах можно говорить, если нет самого предмета.
У нас в комплексной так и ведется учет. Каждый филиал - отдельный контрагент.

Ладно. Закрывать тему надо. Т. к. разговор уже не туда ушел. Спасибо всем, кто пытался помочь...
45. jigourt 31 29.04.14 14:22 Сейчас в теме
(43) Andrew189100,
1С, это прежде всего бизнес-логика.

вот тут вы не правы, 1С это платформа, на которой разворачиваются продукты с бизнес-логикой
47. ShantinTD 91 22.05.14 09:13 Сейчас в теме
(45) jigourt, или без бизнес-логики =)

Да уж. Сон разума рождает чудовищ.
48. jigourt 31 22.05.14 11:45 Сейчас в теме
(47) ShantinTD,
или без бизнес-логики

к сожалению так чаще всего и бывает ))))
46. Sevens 6 29.04.14 16:04 Сейчас в теме
(43) 1С - это прежде всего платформа для описания бизнес-логики.
И 1С выбирают не "из-за наработанной бизнес-логики в соответствии с законодательством" (тут вообще спорный вопрос, на сколько это реально купить типовую 1С и не допиливать её под себя), а из-за возможности подкорректировать программу под свою бизнес-логику, а не наоборот (+ соотношение трудозатрат/цены на такое изменение программного продукта).

Кстати, в (37) запрос не корректный, не хватает связи по ссылке. + Туда же вопрос про оптимальность. Если вы в запросе поставите условие
ГДЕ ССылка = &Ссылка
, как думаете на сколько он будет оптимальным? Ведь сначала отработают связи и только после этого накладывается условие где (это к тому что запрос из 3х ТЧ работает быстрее чем из одной);)
agrustny; +1 Ответить
21. Sevens 6 29.04.14 12:19 Сейчас в теме
(19) Ага, а вот когда данные вытягивать будете какой запрос быстрее и правильнее, к одной Тч с 3мя колонками или к 3м Тч?)
23. agrustny 19 29.04.14 12:22 Сейчас в теме
(19) Прочтите, пожалуйста, (6).
24. Sevens 6 29.04.14 12:23 Сейчас в теме
(23) Это к чему?) я читал и согласен с (6)
26. agrustny 19 29.04.14 12:24 Сейчас в теме
(24) Я ответил (19), внимательней ;)
32. Andrew189100 15 29.04.14 12:54 Сейчас в теме
Номенклатура это обычная строка. Хранить ее в справочнике нет никакого смысла, т. к. это чистно внтуриклиентская штука. Она используется исключительно для маркировки товара и больше нигде не участвует. В моем случае она состоит. Из Наименование, ШтрихКод, Цена, Вид фасовки, Комментарий.
Причем, Вид Фасовки и Комментарий могут различаться в зависимости от магазина...
Наименование и ШтрихКод могут совпадать у контрагентов.

Если делать через справочник, получаетеся что номенклатуру нужно привязывать к Контрагент-Филиал.

Ч
35. Sevens 6 29.04.14 13:02 Сейчас в теме
(32) чего? номенклатура это строка? извиняюсь, а как вы "Товар1" и "Т0вар1" сопоставляете?
42. Andrew189100 15 29.04.14 13:50 Сейчас в теме
Никто ничего не набивает. Эти данные импортируются из html файла. Далее менеджер только комментирует(как раз для таджиков) что брать и во что фасовать.
Можно конечно и комментарий в справочник засунуть. Что-то типа:"Без загнива, подрезаем кончики, вес минимум 400гр." И то же самое. Только вес изменить на 400-500гр.
44. agrustny 19 29.04.14 14:09 Сейчас в теме
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)