Автор Тема: Задача 1.19  (Прочитано 52989 раз)

0 Пользователей и 1 Гость просматривают эту тему.

alexey55

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей
Задача 1.19
« Ответ #45 : Февраль 27, 2012, 08:23:05 pm »
ТатьянаЯ, теперь похоже не только ваша)
 чет у меня с компом..

Lazutin

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Лазутин Илья
Задача 1.19
« Ответ #46 : Февраль 27, 2012, 08:24:42 pm »
ТатьянаЯ, не думаю что смогу оценить в баллах ваше решение... Если не читали, то советую почитать эту ветку форума, тут можно найти обоснование необходимости использования кластеров. Кластер представляет собой своего рода группу аналогов, внутри которой все товары являются аналогами друг друга. В вашем решении нельзя завести аналоги следующего рода:
 Товар1 аналог Товара2
 Товар2 аналог Товара1.
 

 Во всяком случае у меня не получилось.


ТатьянаЯ

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Зубкова Татьяна Юрьевна
Задача 1.19
« Ответ #47 : Февраль 27, 2012, 09:13:27 pm »
А так?
Вложения:
5448700.dt
« Последнее редактирование: Февраль 27, 2012, 09:32:16 pm от Зубкова Татьяна Юрьевна »

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.19
« Ответ #48 : Февраль 27, 2012, 10:00:21 pm »
ТатьянаЯ, если интересно, то посмотрите решение товарища kow1976 .. у него все аккуратно и без всяких прибомбасов .. тем более очень универсально получилось ..

ТатьянаЯ

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Зубкова Татьяна Юрьевна
Задача 1.19
« Ответ #49 : Февраль 28, 2012, 11:25:18 am »
посмотрела решение kow1976.... Почему признак наличия аналогов для товара сделан обязательным? Если у товара не может быть аналогов, то его и записать в справочник нельзя. Это для каждого товара, у которого не будет аналогов будет лишняя запись в справочнике групп аналогов...
 Ну и если делать таким способом, через привязку к номенклатурной группе, то можно же обойтись и вовсе без регистра сведений.
 Скажите что-нибудь по моему решению.

Lazutin

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Лазутин Илья
Задача 1.19
« Ответ #50 : Февраль 28, 2012, 11:58:58 am »
ТатьянаЯ,
 Последняя реализация также не тянет на достоверность, т.к. можно завести несколько подобных записей Товар1 аналог Товара2. Ладно если бы получался срез последних в запросе, но в запросе вы обращаетесь к физической таблице(регистр является периодическим), а значит появятся дубли строк(группировку я тоже увидел...).
 И вообще, я как-то против самого документа "Установка аналогов", но это мое личное мнение smile

ТатьянаЯ

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Зубкова Татьяна Юрьевна
Задача 1.19
« Ответ #51 : Февраль 28, 2012, 11:07:58 pm »
Хорошо, убрала установку аналогов, сделала через группу но без регистра сведений. Посмотрите пожалуйста.
Вложения:
119_2.dt

Lazutin

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Лазутин Илья
Задача 1.19
« Ответ #52 : Февраль 29, 2012, 07:20:06 am »
ТатьянаЯ,
 При такой реализации не учитывается то, что возможно номенклатура может относиться к разным группам аналогов. Т.е. при такой реализации все аналоги относятся к какой-то группе и к примеру если в одну группу поместить Тоавр1, Товар2 и Товар3 то они все будут аналогами друг друга, так?
 Тогда в таком случае не учитывается, что Товар1 может быть аналогом Товара2 и Товара3, а Товар2 не может быть аналогом Товара3. Для реализации такой ситуации нужно относить Товар2 и Товар3 к разным группам аналогов и в обе группы включать Товар1... В общем как-то так smile

 P.S. По-моему регистр сведений в любом случае сам напрашивается
« Последнее редактирование: Февраль 29, 2012, 07:20:42 am от Лазутин Илья »

ТатьянаЯ

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Зубкова Татьяна Юрьевна
Задача 1.19
« Ответ #53 : Февраль 29, 2012, 09:45:56 am »
Lazutin, Вы меня уже совсем запутали
 Сначала вы говорите, что надо "группу аналогов, внутри которой все товары являются аналогами друг друга", теперь Товар2 не будет аналогом Товара3, если Товар2 является аналогом Товара1. Мне кажется именно что будет...Если Товар1 = Товар2, следовательно все что является аналогом Товара2 будет также аналогом Товара1, в том числе и Товар3. Если Товар3 является аналогом Товара1 а у него есть аналог Товар2, то Товар2 тоже аналог Товара3. Все в обе стороны по математическим правилам. Товар1 = Товар3, Товар1 = Товар2, следовательно Товар2=Товар3.

Lazutin

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Лазутин Илья
Задача 1.19
« Ответ #54 : Февраль 29, 2012, 10:14:52 am »
Я уже и сам запутался smile

bezplana

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Ivan
Задача 1.19
« Ответ #55 : Март 09, 2012, 01:10:38 pm »
А что за статья Гилева на тему данной задачи ? Можно ли ссылку получить ?

ТатьянаЯ

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Зубкова Татьяна Юрьевна
Задача 1.19
« Ответ #56 : Март 09, 2012, 04:59:05 pm »
я так понимаю это http://www.nashe1c.ru/materials-view.jsp?id=318

sv_mikh

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Михайлов Сергей Валерианович
Задача 1.19
« Ответ #57 : Март 23, 2012, 10:45:35 am »
Уже несколько дней думаю над этой задачей. В чем сложность: сложность в том, что это задача выборов. Выбор в начале выборки меняет ситуацию в конце. При этом для решения задачи необходимо помнить те выборы, что были с деланы в процессе обхода. Вижу 3 варианта решения:
 1. Заведомо неметодологичный. Обходим табличную часть, строим таблицу остатков в следующем виде: сверху товар, ниже аналоги по убыванию приоритета. Идем по выборке, списываем кол-во в строке, пишем в базу движения. Т.е. запрос к остаткам аналогов и запись по каждой строке. Самое бесхитростное решение.
 2. Развитие п.1. Перед обходом табл.части в таблицу значений выгружаем остатки по товарам ТЧ и их аналогам. Идем по срокам, пишем движения, убираем из ТЗ исчерпанные остатки товаров и их аналогов. Тоже не очень хорошо -- обработка ТЗ.
 3. Развитие п.2. Перед обходом выборки строк выбрать остатки товаров ТЧ и их аналогов во временную таблицу МВТ. Обход по строкам -- запрос как выборка из ВТ МВТ остатков аналогов на количество строки. Убираем из ВТ МВТ Остатки исчерпанные в запросе по строке товары. Пишем движения по строке. Т.е. в каждый проход по ТЧ идет запрос к ВТ МВТ. Т.е. как бы запрос в цикле, но не к остаткам, а к памяти кластера серверов. Не знаю насколько это зло с точки зрения 1С. Я думаю это не лучше п.2. Тот же запрос к памяти.. Но отлаживать такое решение сложнее, но вполне можно.

 Я склоняюсь к п.2 как наиболее простому в данном случае и способному реализовать задачу с одним лишь ограничением -- нет аналогов аналога. Т.е дерево аналогов ограничено уровнем 2.

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

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.19
« Ответ #58 : Март 23, 2012, 01:49:03 pm »
sv_mikh, насколько я помню из постов участников форума, ТЗ разрешается в этой задаче.

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.19
« Ответ #59 : Март 23, 2012, 07:42:06 pm »
sv_mikh,
 Если делаем один запрос с выгрузкой остатков в ТЗ то:(блокировки возможны только по заданному товару и необходимо постоянно находить заданную номенклатуру в ТЗ при алгоритме обхода списания)

 "Выгрузка результата запроса в промежуточную таблицу (например, в таблицу значений) без необходимости -1 балла"

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

 Использование менее эффективной методики проведения документов -1балл

 Какая разница за что получать минус один балл.
 Третьего решения пока нет.