-
Долго искал подходящую концепцию решения в сети))! Вот лучше этой пока не нашел,может кто знает как улучшить.
Вложения:
1.19.dt
-
мой вариант
По Гилеву
Вложения:
8740235.dt
-
Все-таки заставил себя решить эту задачу =) В ветке 8.1 вроде как пришли к выводу что бесконечный уровень аналогов лежи на пользователе. Те при заполнении регистра АналогиТоваров если он хочет, чтобы при списании Товара1 списывался аналог1 а при списании аналога1 списывался аналог2 то пусть заполняет регистр так
Товар1 - аналог1
Товар1 - аналог2
Читал сообщение сдающих кому попалась эта задача, именно это допущение использовали, иначе чтобы размотать всю цепочку аналогов нужно делать рекурсию..
Основная поблема в том, что при списании аналога, нужно учесть, что этот аналог может быть в тч Расходной.Бегло просмотрел решение streght2008 в ветке 8.1..но не въехал Он создает пустую таблицу РеальныйОстатокТоваров, а потом как то хитро заполняет ее..Вообщем взял саму идею хранить реальные остатки в ТЗ и уменьшать ее количество при списании, получислось вроде не сложно, но времени все равно ушло 2 часа..Очень рад буду критике=)
Вложения:
1.19.dt
-
Черт как я не увидел то ее
http://forum.chistov.pro/index.php?topic=1178.msg1#msg1 Добавлено (03.10.2010, 14:13)
---------------------------------------------
aworld, вообще нет блокировок, BelousovKirill блокировка только по номенклатуре в ТЧ документа, аналоги в остатках не блокируются. Основное отличие моего решения, что ТЗ заполняется остатками товаров и аналогов до обхода запроса и при обходе ориентируемся на количество в этой ТЗ
-
сделал с учётом вложенных аналогов
Вложения:
InSurgent-1.19.dt
-
Сделал по условию задачника, а не как в билете.
Добавлено (09.10.2010, 00:08)
---------------------------------------------
InSurgent, у тебя регистр остатков в минус уходит
добавь в свою расходную 10 шариковых ручек, по регистру остатков спишется 11 а на остатке всего 10
Вложения:
Zhora_Vlg-1.19.dt
-
Zhora_Vlg, а у меня не посмотрел?=)
Добавлено (09.10.2010, 01:25)
---------------------------------------------
просто я сам не тестировал особенно (если вообще тестировал=))
-
Zhora_Vlg, спасибо, что заметил.
Кстати, я так понял, судя по правилам решений задач, всем измерениям регистров, по которым осуществляется отбор, нужно назначать индексирование ?
Вложения:
InSurgent-1.19_.dt
-
InSurgent, по полям, по которым будешь соединять, таблицы, которую будешь с регистром соединять
-
Мое скромное решение
Вложения:
Ticket_3.dt
-
Quote (aworld)
мой вариант
По Гилеву
Прикрепления: 8740235.dt(156Kb)
В обработке проведения документа УстановкаАналогов в запросе похоже ошибка, наверное должно быть так УстановкаАналогов.Аналог = КластерАналога.Номенклатура
Еще измерение НоменклатураПродажи нужно в регистр Продажи добавлять, иначе Регистр ОстаткиНоменклатуры не будет закрываться в ноль.
-
Думаю решение правильное , отчет не сделал )))) покопайтесь если кому не лень, буду рад критике
Вложения:
1_19.dt
-
Мое решение
Вложения:
2075698.dt
-
С одной стороны логично определять аналогичность товаров с помощью рс. Но в задаче не сказано что решения должно быть построено именно на рс.
Предлагаю иную концепцию определения аналогичности товаров: Спр Аналоговые группы товаров. В спр Номенклатура добавить реквизит АналоговаяГруппаТовара.
Допустим товар1 это аналог товара2, а товар3 является аналогом товара2. Логично предположить что все эти три товара являются аналогами друг друга, следовательно их можно объединить в одну некую аналоговую группу. В рамках одной группы все товары аналоги друг друга. Если реквизит АналоговаяГруппаТовара пустая ссылка, то это уникальный товар.
Первоначально мне удалось организовать списание без тз, но посмотрев на отчет пришлось переделать, по скольку в данном случае стирается грань между товарами и аналогами. Пришлось использовать несколько необычную(для меня) структуру данных в регистре Продажи и переделать алгоритм списания и формирования движений с использованием таблицы значений.
Вложения:
Task_1_19..dt
-
Мое решение, списание в расходной при помощи таблицы значений
Вложения:
7786736.dt
-
Почитал статью Гилева, сделал с учетом что можно продавать аналог аналога
сделал через кластеры и запоминание списанного в тз, все вроде логично когда аналог аналога продается а приоритет аналогов задает пользователь
на документ назначения аналогов не замарачивался , кластеры которым принадлежит товар задаются в рс вот как конечно в такои задаче блокировку поставить тут я теряюсь, заблокировать весь кластер
Вложения:
1_19_lukashov.dt
-
Вот мой вариант.
Жажду объективной критики.
Вложения:
1_19_bpi.dt
-
В решении ТЗ не использую.
1 Создаю справочник ГруппаАналогов и в РС записываю Номенклатуру и к какой ГруппеАналогов она относиться;
2. Списываю в начале, заданный товар;
3. Определяю список товаров(аналогов) по которым возникли отрицательные остатки.
4. Проверяю достаточность аналогов для списания, согласна задания.
Спасибо за комментарии и замечания
Вложения:
kow19761.19.dt
-
kow1976, Мне понравилось Ваше решение, и, ИМХО, оно проще, чем решение с использованием ТЗ или по Гилеву! Но!! 3 запроса!!! Любой преподаватель скажет, что это не оптимально и всю информацию нужно получать по 1 запросу (или стремится к этому)! Может имеет смысл, сделать составной пакет одним запросом, допустим пакет 1 - общие остатки, пакет 2 - остатки основного товара, пакет 3 - остатки аналогов, чтобы проще было списывать. Как я понял, у Вас, все товары будут являться аналогами для товаров из группы ГруппаАналогов, что в свою очередь решает такую подводную проблему, как списание аналога аналога (тарабарщина, но иначе не скажешь ..), если его/их не хватает!
Насчет же решения .. Мыслю, что лучше все-таки в самом начале проверить сумму общих остатков, и основного товара и аналогов! Если не хватает, то дальше можно и не идти. В качестве мелочи, в 1 запросе Склад в ВТ лишнее, он как параметр для РН из док-та, его всегда получить можно. Также, можно избавиться от 2 запроса. Объедините его с 3-им как ВТ! В целом, скажу, что Ваша идея самая простая, без заморочек, чем мне и понравилась. Поэтому, её быстрее будет реализовать на экзамене. Один вопрос .. запросы .. не снизят ли баллы за их количество?
-
DoctorRoza,
1. При решении использую менеджер временных таблиц, поэтому в принципе запрос один и к любой его части можно обратиться в пакете. Сам Евгений Гилев на своих уроках не стесняясь, разрывает запросы на такие мелкие (и как правило динамические) части, что порой не понятно где начало запроса где конец и какой текст запроса будет в разных ситуациях. А текст запроса рекомендует просматривать при отладке (Запрос.Выполнить().Текст).
2. Проверить сумму остатков в одном запросе у меня не получается да и Евгений Гилев в своем решении предупреждает что эти остатки могут быть не правильные.
Пример
Остатки (Аналоги)
Портсигар 3 ед
Портсигар(имп) 5 ед
Портсигар (отеч) 6 ед
Нужно списать
Портсигар 7 ед
Портсигар(имп) 11 ед
Остатки для Портсигар 3+5+6=14ед
Остатки для Портсигар(имп) 5+3+6=14ед
Поэтому я в начале, списываю остатки по основному заданию, в пределах, существующих в БД. Записываю результат в базу. Затем проверяю необходимость аналогов.
К тому же четко не известно, на какую номенклатуру нужно накладывать блокировку. Если по основному заданию и их аналогам, то это избыточно, так как часть номенклатуры может списаться без проблем.
У решения я вижу одно слабое место. Это количество записей в базу. Три записи в базу это конечно плохо. Но здесь, на мой взгляд, на некоторых наборах данных должна быть существенная экономия оперативной памяти процессорного времени, и количества заблокированной номенклатуры(увеличивается маштобируемость системы).
Что лучше ТЗ с блокировкой всей номенклатуры и аналогов из РН или лишний метод Записать() с блокировкой всей номенклатуры из РН и блокировкой аналогов по той номенклатуре которой не хватило на остатках, это большой вопрос?
3) На счет как лучше передавать параметр (склад) в запрос или использовать разыменование полей можно выделить достоинства и недостатки:
Достоинства
Возможность провести индексацию, что серьезно должно ускорить поиск в БД заданных значений
Недостатки
1. Левое соединение к табличной части реквизитов РН (практически вложенный запрос)
2 Наличие заданного поля(склад). Т.е. практически целый столбец одного и того же значения. Явные потери оперативной памяти.
Что лучше я точно не знаю. Нужно понимать sql. В решении ориентируюсь на требование индексирования полей от 1С
-
Часто в твоих решения встречаю ненужное соединение ТабДок.Склад = ОстаткиНоменклатурыОстатки.Склад которое ты и так указываешь в параметрах виртуальных таблиц.
Использование механизма соединения таблиц вместо того, чтобы задать значения параметров виртуальных таблиц - 0,5 – 1,0
-
Saipl,
Немножко не так
Параметры виртуальных таблиц указываю обязательно.
А соединение делаю, чтобы присутствовали записи из табДок даже если остатки нулевые.
-
Мне кажется что решение не должно быть сложным и при нахождении аналогов можно ограничиться первым уровнем зависимости.
Буду рад конструктивной критики предложенного решения.
Вложения:
1Cv81_19.dt
-
Добавил оборотные регистр продажи для отчета
Вложения:
1Cv8__1_19_VAN_.dt
-
Для чего используется ГруппаАналогов ? Зачем промежуточный справочник ?Не уловил !
-
Saipl,
Евгений Гелев в своем решении использует понятие «кластер» это группы, в которые объединяется номенклатура динамически (программно).
Я использую тот же подход, только группы аналогов(кластеры) формирует пользователь. Т. е это список номенклатуры, который полностью взаимозаменяем
Например:
ГруппаАналогов – «Ботинки»
В группу входят : Ботинки черные, Ботинки красные, Ботинки зеленые и т. д.
Идея такая
Нужно списать «ботинки зеленые». Если их не хватило. Определяем к какой группе они относиться «ГрппеАналогов» «ботинки» в данную группу входят «Ботинки черные, Ботинки красные»
-
Не могу придумать ситуацию в которой ГруппаАналогов имела бы более практическую значимость по сравнению с левым соединением Номенклатура - Аналог.
-
Saipl,
Надо смотреть реализацию задачи. Возможно, ваше решение будет лучше. Меньше левых соединений. При решении приходится решать комплекс проблем, если где то выиграл, обязательно, что то, ухудшиться.
-
В обработке проведения преднамеренно не указываете РежимБлокировкиДанных ?
Когда происходит вторая блокировка данных по аналогам вы добавляете новый ЭлементБлокировки, может имеет смысл создать новую блокировку тем самым "освободить" перечень номенклатуры из документа т.к. движение по регистрам мы уже сделали ?
Делаем приход Big (капилярная) 3 по 5 р.шт., Делаем расход в одном документе на 3 Big (капилярная) по 10 р.шт. и 3 Big (капилярная) по 15 р.шт. - документ успешно проводится. (Самый первый запрос - группируешь по цене !)
-
Saipl,
Разблокировать смысла нет все равно мы все списали до нуля.
С ценой действительно есть проблема. Но она носит интерфейсный характер. Не бывает у одной номенклатуры разных цен в одной приходной.
Можно было бы использовать выручку (сумму), но тогда встает вопрос распределения выручки между заданным товаром и аналогами. Хлопотно решается проблема копеек.
Но если пользователь все же ввел разные цены. Можно рассчитать среднею цену. И вводить в базу данные по средней цене, что обеспечит равенство заданной выручки с выручками по аналогам. Хотя операция деления не восстановима.
По хорошему, нужен РС с ценами на номенклатуру на заданную дату.
-
"Разблокировать смысла нет все равно мы все списали до нуля." А приход разве не будет блокироваться. Я не предираюсь так сказать в целях повышения образованности.
Сделал с возможностью ввода разных цен в документе (никогда больше это повторять не буду тем более на экзамене, просто лень было переделывать).
Вопрос: не будет ли являться ошибкой что мы одну и ту же цифру "Себестоимость" дублируем в 2 регистра ?
Вложения:
Saipl_1.19.dt
-
Saipl,
1Приходы в принципе нам не создают коллизий. Приходы задним числом отслеживаются последовательностями.
2Есть простая идея, как отследить разные цены по одинаковым номенклатурам. Сгруппировать по номенклатуре одну ВТ и сгруппировать по ценам другую ВТ сделать пакетный запрос. И сравнить количество строк в первом и втором пакете если не совпадает, то пусть пользователь исправляет ситуацию.
Реализую и выложу исправления
3 Не доложено в одном случае обороты в другом остатки. По остаточному регистру обороты строятся по физическим таблицам. А по оборотному регистру по таблице итогов. По идее цифра одна экономический смысл разный
-
2. В типовых делается связь двух ТабличныхЧастей, Номенклатура = Номенклатура И НомерСтроки <> НомерСтроки
-
kow1976 Ваше решение, РН списывает сколько хочет и откуда хочет, щедрый Вы З.Ы. Смотрю Ваше решение из поста #18.
http://s54.radikal.ru/i145/1111/af/f940c7a30702.jpg
-
ErrorPro,
Спасибо за комментарий.
Честно для меня задача была очень сложная. Но, честно говоря, я думал, что все дырки закрыл.
Если я правильно понял проблему, так решение себя ведет, если у номенклатуры не установлена группа.
Запрет на не установленную группу я поставил. Но рекомендуемая номенклатура в базе осталась без группы. Поэтому это ошибка наверно пользовательская.
Можно немножко подробней как вы получаете такую ошибку.
-
Конечно можно, вот база. Добавил в группу аналовов "куртки" ручки свои, сделал по ним приход ( по каждой 1 шт.) и потом попытался списать 1 вид ручек 3 шт.
Вложения:
ForKow.dt
-
Спасибо в номенклатуре как я и предполагал просто не установлена группа аналогов
-
Всем привет, жду комментарий, по поводу моего второго запроса - да, может быть можно чуть по другому, передать МВТ с списком номенклатуры сгруппированной и проверить на количесто, но на момент прозрения я уже почти дописал этот вариант и уже было тяжело побороть сон и усталость. делал замер , второй запрос хавает 6.7 % чистого времени. Спасибо, жду комментарий З.Ы. при решении отталкивался только от своего ИМХО, не чьи решения не палил
Вложения:
1Cv8ErrorPro.dt
-
взрыв мозга . так и не могу сообразить как решить задачу..
-
Очень интересная задача Где-то в этом разделе есть схожая задача, разница только в одном условии вроде, но решение отличается достаточно сильно
-
Проверьте пожалуйста мое решение. Две недели мучалась.
Вложения:
119.dt
-
ТатьянаЯ,
Извините, проверить не смогу, но выложу свое решение для сравнения, как я решал эту задачу при подготовке к экзамену.
Вложения:
_1.19.dt
-
слово кластер вводит меня в ступор, поэтому я делала без них, просто с двумя измерениями РС. Мне бы хотелось знать, если попадется на экзамене, то мое решение на сколько баллов тянет..
-
ТатьянаЯ,
Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP
другие базы нормально...
с чем это связано?
-
эммм, это чей-то такое? моя база так говорит?
может быть потому что у меня там запуск обычное+управляемое стоит
-
ТатьянаЯ, теперь похоже не только ваша)
чет у меня с компом..
-
ТатьянаЯ, не думаю что смогу оценить в баллах ваше решение... Если не читали, то советую почитать эту ветку форума, тут можно найти обоснование необходимости использования кластеров. Кластер представляет собой своего рода группу аналогов, внутри которой все товары являются аналогами друг друга. В вашем решении нельзя завести аналоги следующего рода:
Товар1 аналог Товара2
Товар2 аналог Товара1.
Во всяком случае у меня не получилось.
-
А так?
Вложения:
5448700.dt
-
ТатьянаЯ, если интересно, то посмотрите решение товарища kow1976 .. у него все аккуратно и без всяких прибомбасов .. тем более очень универсально получилось ..
-
посмотрела решение kow1976.... Почему признак наличия аналогов для товара сделан обязательным? Если у товара не может быть аналогов, то его и записать в справочник нельзя. Это для каждого товара, у которого не будет аналогов будет лишняя запись в справочнике групп аналогов...
Ну и если делать таким способом, через привязку к номенклатурной группе, то можно же обойтись и вовсе без регистра сведений.
Скажите что-нибудь по моему решению.
-
ТатьянаЯ,
Последняя реализация также не тянет на достоверность, т.к. можно завести несколько подобных записей Товар1 аналог Товара2. Ладно если бы получался срез последних в запросе, но в запросе вы обращаетесь к физической таблице(регистр является периодическим), а значит появятся дубли строк(группировку я тоже увидел...).
И вообще, я как-то против самого документа "Установка аналогов", но это мое личное мнение
-
Хорошо, убрала установку аналогов, сделала через группу но без регистра сведений. Посмотрите пожалуйста.
Вложения:
119_2.dt
-
ТатьянаЯ,
При такой реализации не учитывается то, что возможно номенклатура может относиться к разным группам аналогов. Т.е. при такой реализации все аналоги относятся к какой-то группе и к примеру если в одну группу поместить Тоавр1, Товар2 и Товар3 то они все будут аналогами друг друга, так?
Тогда в таком случае не учитывается, что Товар1 может быть аналогом Товара2 и Товара3, а Товар2 не может быть аналогом Товара3. Для реализации такой ситуации нужно относить Товар2 и Товар3 к разным группам аналогов и в обе группы включать Товар1... В общем как-то так
P.S. По-моему регистр сведений в любом случае сам напрашивается
-
Lazutin, Вы меня уже совсем запутали
Сначала вы говорите, что надо "группу аналогов, внутри которой все товары являются аналогами друг друга", теперь Товар2 не будет аналогом Товара3, если Товар2 является аналогом Товара1. Мне кажется именно что будет...Если Товар1 = Товар2, следовательно все что является аналогом Товара2 будет также аналогом Товара1, в том числе и Товар3. Если Товар3 является аналогом Товара1 а у него есть аналог Товар2, то Товар2 тоже аналог Товара3. Все в обе стороны по математическим правилам. Товар1 = Товар3, Товар1 = Товар2, следовательно Товар2=Товар3.
-
Я уже и сам запутался
-
А что за статья Гилева на тему данной задачи ? Можно ли ссылку получить ?
-
я так понимаю это http://www.nashe1c.ru/materials-view.jsp?id=318
-
Уже несколько дней думаю над этой задачей. В чем сложность: сложность в том, что это задача выборов. Выбор в начале выборки меняет ситуацию в конце. При этом для решения задачи необходимо помнить те выборы, что были с деланы в процессе обхода. Вижу 3 варианта решения:
1. Заведомо неметодологичный. Обходим табличную часть, строим таблицу остатков в следующем виде: сверху товар, ниже аналоги по убыванию приоритета. Идем по выборке, списываем кол-во в строке, пишем в базу движения. Т.е. запрос к остаткам аналогов и запись по каждой строке. Самое бесхитростное решение.
2. Развитие п.1. Перед обходом табл.части в таблицу значений выгружаем остатки по товарам ТЧ и их аналогам. Идем по срокам, пишем движения, убираем из ТЗ исчерпанные остатки товаров и их аналогов. Тоже не очень хорошо -- обработка ТЗ.
3. Развитие п.2. Перед обходом выборки строк выбрать остатки товаров ТЧ и их аналогов во временную таблицу МВТ. Обход по строкам -- запрос как выборка из ВТ МВТ остатков аналогов на количество строки. Убираем из ВТ МВТ Остатки исчерпанные в запросе по строке товары. Пишем движения по строке. Т.е. в каждый проход по ТЧ идет запрос к ВТ МВТ. Т.е. как бы запрос в цикле, но не к остаткам, а к памяти кластера серверов. Не знаю насколько это зло с точки зрения 1С. Я думаю это не лучше п.2. Тот же запрос к памяти.. Но отлаживать такое решение сложнее, но вполне можно.
Я склоняюсь к п.2 как наиболее простому в данном случае и способному реализовать задачу с одним лишь ограничением -- нет аналогов аналога. Т.е дерево аналогов ограничено уровнем 2.
Если попробовать взглянуть на задачу шире, то можно сказать, что одним запросом задачу решить не возможно... Она уходит в область комбинаторики. Т.е. просчитать все выборы сверху до низу просчитать одним последовательным запросом не получается. И тут в любом случае придется нарушить методологию рекомендуемую 1С. Вариант п.2 наиболее прозрачен в данном случае для реализации... В обход по строкам можно при желании воткнуть и рекурсивный вызов, который будет так же исчерпывать данные ТЗ остатки товаров и их аналогов.
-
sv_mikh, насколько я помню из постов участников форума, ТЗ разрешается в этой задаче.
-
sv_mikh,
Если делаем один запрос с выгрузкой остатков в ТЗ то:(блокировки возможны только по заданному товару и необходимо постоянно находить заданную номенклатуру в ТЗ при алгоритме обхода списания)
"Выгрузка результата запроса в промежуточную таблицу (например, в таблицу значений) без необходимости -1 балла"
Если делаем запись в базу заданного товара, а потом получаем остатки по необходимым аналогам то:(блокировки возможны как по заданному товару так и по необходимым аналогам):
Использование менее эффективной методики проведения документов -1балл
Какая разница за что получать минус один балл.
Третьего решения пока нет.
-
kow1976, http://forum.chistov.pro/index.php?topic=912.msg11796#msg11796
-
С таким же успехом ("Как говорил Белоусов единственная задача, где эта выгрузка оправдана это 1.19") оправдана 2.29 тоже проблемное поле. И 2.28 эффективнейший решается через ТЗ.
ТЗ - используем там где нужно изменять данные запроса. В запросе невозможно обращаться к данным строк которые находятся выше или ниже анализируемой.
-
Quote (kow1976)
"Как говорил Белоусов единственная задача, где эта выгрузка оправдана это 1.19"
А первоисточник бы... Вроде я таких слов в ветке по 1.19 не видел на девтренинге
-
Это по ссылки Gyd,
-
Quote (kow1976)
Это по ссылки Gyd,
Круто... Значит можно таки ТЗ тут использовать... А то я мучился... Думал как без нее. С ВТ МВТ можно... Но это почти те же ТЗ.
-
Я в этой задаче наверно все таки рискнул бы писать в базу три раза.
Тут будет обязательно зависимость эффективности от количества записей в таб части РН. Обязательно будет такое количество записей при котором три раза записать в базу лучше чем тысячу раз выполнить поиск номенклатуры (это тоже цикл) в ТЗ.
На малых количествах записей в таб. части только ТЗ. На больших лишняя запись в базу. В принципе это даже можно автоматизировать.
-
задача - жесть но надо делать...
-
Quote (RoMeL)
задача - жесть но надо делать...
Сам только вчера её посмотрел, до этого проскачил т.к. в билетах её не было, теперь просматриваю все подряд , почитай гилева, я прочитал и вроде как все легко на самом деле.
-
Мое решение через регистр сведений... без учета вложеных аналогов...
-----------------------------------------------
Регистр ОстаткиНоменклатуры
------------------
Номенклатура
Склад
------------------
Количество
Сумма
-----------------------------------------------
Регистр Продажи
------------------
Номенклатура
Аналог
------------------
Количество
Сумма
Стоимость
------------------
Два запроса...
//№1 Выборка номенклатур в документе и их аналогов для упр. блок. регистра + для фильтра виртуальной таблицы регистра остатков
//№2 Выборка остатков номенклатур и их аналогов
+ Использовал таблицу значений
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Аналог");
ТЗ.Колонки.Добавить("СписаноКол");
ТЗ.Колонки.Добавить("СписаноСумм");
Для учитывания списаного количества и суммы при дальнейшем списании...
Отчет "Продажи" очень простой.
Списибо за комментарии и найдение ошыбки ...
Вложения:
RoMeL_1.19.dt
-
Code
|ВЫБРАТЬ
| НоменклатураИАналоги.Номенклатура
|ИЗ
| НоменклатураИАналоги КАК НоменклатураИАналоги";
Зачем нужно было делать еще один запрос? Нельзя было вместо
Code
|ВЫБРАТЬ
| ВЗ.Номенклатура
|ПОМЕСТИТЬ НоменклатураИАналоги
|ИЗ
Написать
Code
|ВЫБРАТЬ
| ВЗ.Номенклатура КАК Номенклатура
|ИЗ
-
Lazy, попробуй убрать последнюю выборку и посмотри в отлатчике что получиться в "РезультатДляУБ"...
P.S. в моем решении для таблицы "НоменклатураИАналоги" нужно еще добавить индексирование по полю "Номенклатура"
-
Вроде тоже самое получается...
А зачем нужно индексирование?
-
Lazy,
В списке ошибок:
"В задачах получения данных из информационной базы установка отборов по неиндексированным полям" - 0.5 баллов
-
Что-то в списке билетов её не видел. Она попадалась кому-то на экзамене?
-
Нет, но сейчас билеты переделывают.
-
RoMeL, про индексирование всё верно. Отмечу в Ваших решениях часто встречаю неиндксированные измерения РН - не забывайте.
-
Чисто теоретически, если списать по новой методике? Списать номенклатуру вместе с аналогами и проверить в конце, где минус. Единственное, будет заморочка с выводом чего не хватило в случае списания.
Добавлено (11.03.2013, 09:08)
---------------------------------------------
А нет не прокатит так.
-
Еще один вариант с использованием ТЗ. Чужие решения не смотрел.
С аналогами не мудрил. У каждого элемента справочника в ТЧ "Аналоги" перечисляем что нужно. Думаю нет смысла рассматривать вариант с аналогами аналогов. Не очень гибко, но думаю пойдет.
Вложения:
6101604.dt
-
leonid_kirienko
В вашем варианте решения, если в расходной накладной использовать аналог, то он спишется 2 раза. Например пришло 1 обычная ручка и 5 синих. Делаем расходную накладную на 6 синих и 1 обычную ручку. Спишется 5 синих и 2 (1+1) обычных ручки.
Выкладываю свой вариант решения (запрос сложный получился, но по моему работает)
Вложения:
KTT_1_19.dt
-
запрос в расходной написал быстро, но зато пол дня писал алгоритм списания на основании запроса, попытался сжать максимально.
подглядел только структуру регистра Продажи, где добавил помимо измерения Номенклатура еще Аналог.
аналоги сделал ч\з регистр сведений.
Цитата (TuMyP1985)
leonid_kirienko
В вашем варианте решения, если в расходной накладной использовать аналог, то он спишется 2 раза. Например пришло 1 обычная ручка и 5 синих. Делаем расходную накладную на 6 синих и 1 обычную ручку. Спишется 5 синих и 2 (1+1) обычных ручки.
да я то же у него нашел эту ошибку, у вас то же ошибка, я добавил в вашей базе в аналоги у Портсигар(имп.) - Портсигар(отеч.) а также у Портсигар(отеч.) - Портсигар(имп.), и мне удалось списать 21шт. - Портсигар, и 21шт. Портисгар(отеч.), тогда как всего на остатках портсигаров всего 22шт. Вашу базу с этой ошибкой также выкладываю.
P.S. кстати, почему-то многие забывают про последовательности, к\е так активно использовались в первых задачах по ОУ
Вложения:
1883634.dt
KTT_1_19_2vozvr.dt
-
Спасибо за замечание, исправил - добавил немного строк в алгоритм для того что бы исключить задвоение остатков, в запрос не стал лезть.
Ваше решение посмотрел, не смог получить неверных результатов в программе, все хорошо)
Вложения:
1916026.dt
-
Hell Yeah !!!
Не скажу что "сделал сам", но хоть понял как делать.
Посмотрите пожалуйста кому не жаль времени - вроде все есть и блокировки и списание правильное Задача была изначально (для меня) трудной к восприятию, но все таки далась. Хотя по прежнему не уверен что вложился бы на экзамене во время.
Есть точно ошибки в некоторых ВТ типа - не проиндексировал или переиндексировал поля, и не выбрал предстваление поля, для Сообщения, но на это уже не стал заморачиваться. Сильно задача показалась нелегкой... для понимания.Добавлено (02.07.2013, 19:17)
---------------------------------------------
Цитата (TuMyP1985)
запрос сложный получился, но по моему работает
Я немного потестил вашу базу (удалил документы, добавил аналоги)... В итоге добился того,что база делает движения по остаткам и продажам с пустыми строками. Если интересно - посмотрите (вашу базу с ошибкой прилагаю)
З.Ы. По возможности от вас ожидаю взаимного тестирования моей базы.
Вложения:
bilateral_upr19.dt
-
База с ошибкой для TuMyP1985
Вложения:
1985_fixed.dt
-
Благодарен за замечание. Нужно было просто добавить строчку в код "Если Списываем=0 Тогда Продолжить; КонецЕсли;" - избавиться от появления пустых движений.
Цитата (bilateral)
bilateral
обработке проведения расходной накладной:
1) у вас:
Движения.Продажи.Очистить(); Движения.Продажи.Записать();,
я думаю хватит только Движения.Продажи.Записать(); (т.к. в "Движения" незачем очищать, там и так пусто) (то же самое и для Движения.ОстаткиНоменклатуры)
2) в блокировках у вас:
ЭлементБлокировки.ИсточникДанных = Результат;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");
вот тут я не уверен, но написал бы вместо "ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");" -
"ЭлементБлокировки.УстановитьЗначение("Склад",Склад)" (у нас склад один и прописан он в шапке, если использовать как у вас, то если будет 100 строк номенклатур,
то в них будет 100 раз прописан один и тот же склад).
3) ну и немного "побурчу" по реализации аналогов.
Мне тяжело было понять у вас суть аналогов.
Как я понял вы создали отделый объект "справочник аналоги", у номенклатуры добавили реквизит "аналог". И вся номенклатура с одинаковым
значением реквизита "аналог" - друг друга взаимозаменяет?
Если так, то предположим, что есть номенклатура П1, П2, П3, у них одинаковый реквизит "аналог". Тогда получается, что П1,П2 и П3 взаимозаменяемы.
А если заказчик хочет, что бы П2 было аналогом для П1 и П3, но П1 не являлось аналогом для П3(и наоборот), как это реализуется в вашей схеме?
(можно было реализовать аналоги а) как табличные части номенклатуры или б) как у вас регистр сведений, только в измерении ГруппаАналогов тип данных номенклатура)
(прикрепляю свою базу)
Вложения:
8315775.dt
-
1. Очистить тоже раньше не использовал. Но, сейчас начал смотреть курс Чистова по подготовке к спецу (новый за 2012 год) и там в нулевом блоке он обосновывает что надо Очистить и записать. Попробуйте сделать обычную форму, запуститься в обычном приложении и без очистить по перепроводить документы. Очистить надо для того, что бы решение работало и в обычном приложении. Я проверял. Сам Чистов говорит, что в требованиях не указано что надо это обеспечивать, но советовал очистить тоже писать.
2.Результат - тоже из курса подсмотрел. Там предлагает 2 варианта блокировок - таб часть, и результат запроса.
В моем случае, я формирую таблицу со складом, и используюю ее в блокировках и в отборе по таблице остатков. Вариант
Код
(Номенклатура, Склад) В ( Выбрать ТабДок.Номенклатура, ТабДок.Склад Из ... )
лучше, чем
Код
(Номенклатура) В ( Выбрать ТабДок.Номенклатура Из ... )
И Склад = &Склад
3. Я исходил из того, что Н1 аналог Н2 аналог Н3. Значит, Н1 аналог Н3. Это как с номенклатурными группами. Объединяю товары с похожими характеристиками (взаимозаменяемые) в одну группу. Например (увидел эту идею в этой ветке, где то выше) "Ботинки синие","Ботинки красные","Ботинки черные". Почему синие нельзя заменять черными? В задаче написано Цитата
" ...У некоторых товаров могут бытьаналоги - другие позиции номенклатуры с теми же потребительскими свойствами и
ценой, причем таких аналогов у товара может быть несколько..."
у меня это вроде так и есть, а остальное на усмотрение решающего, если другого не сказано в условии. Мне показалось так легче для понимания, и логичнее. И запрос вроде более менее простой и короткий получается, что для экзамена важно (по времени).
З.Ы. Спасибо за уделенное время.
-
значит нет замечаний при тестировании вашей базы.
Нужно запомнить про ".очистить()" и "(Номенклатура, Склад) В ( Выбрать ТабДок.Номенклатура, ТабДок.Склад Из ... )" - постараюсь использовать при решении след. задач.
P.S. Курсы скачены - на выходных их просмотрю)
-
Цитата (TuMyP1985)
P.S. Курсы скачены - на выходных их просмотрю)
не подскажите откуда скачали?
-
Конечно подскажу) вот тут качайте:
http://xn----1-bedvffifm4g.xn--p1ai/free/
-
Цитата (TuMyP1985)
Конечно подскажу) вот тут качайте:
http://xn----1-bedvffifm4g.xn--p1ai/free/
спасибо, это у меня уже есть, bilateral упомянул про курсы Чистова
-
А я от туда скачал курсы, в том числе по разбору двух задач "Оперативный учет", вот думал он их и имел ввиду. Понятно.
-
решал после просмотра статьи и видеоурока Гилева. Соответственно, РС СоставКластера (измерение Номенклатура, ресурс Кластер), регистратор документ УстановкаАналога, он же задает наименование кластера. В РН Продажи - одно измерение - Номенклатура. В отчете в поле Номенклатура выводим Кластер, а если у номенклатуры
нет аналогов - выводим номенклатуру. Критика приветствуется.
Вложения:
fimanich_01_19.dt
-
fimanich, я думаю отчет все же построить по 2 измерениям, так как изначально в расходной приоритетом идет указанная при продаже номенклатура, а уже если не хватает, то аналоги, в отчете задачника это и видно, правда по задачнику неточность с числами продажи аналогов
-
Цитата (manu)
изначально в расходной приоритетом идет указанная при продаже номенклатура, а уже если не хватает, то аналоги
Такой приоритет в моем решении соблюдается
-
подправил
Вложения:
4768763.dt
-
глянул в кратце варианты решения: вариант с использование табличной части и другого рода подчинения, мне кажется, неоптимальным из-за необходимости использования рекурсии для поиска аналогов аналогов аналогов и т.д..
Перед тем как посмотреть как другие решают эту задачу, первой моей мыслью было использование характеристик номенклатуры (ПВХ), таким образом можно было бы привязать один и тот же набор характеристик разным позициям и потом по этому набору осуществлять поиск. с точки зрения жизни, мне кажется, это самое логичное (как поиск по хэш-тэгам). единственное но- придется потратить довольно много времени, т.к. в условии сказано, что характеристик несколько, соответственно придется организовать хранение остатков с учетом набора характеристик...
Как мне кажется, вариант с кластером не очень применим в жизни, но реализуется гораздо быстрее, поэтому скорее всего сделаю оба варианта, а на экзамене спрошу и если нет разницы- буду реализовывать с кластером...
-
кому нужен кластер, про это в задаче ни слова.
делаем регистр сведений с двумя измерениями - товар, аналог, типы номенклатура.
регистр продажи - изм. товар, аналог, ресурсы - сумма, кол-во, себестоимость
при списании соединяем аналоги, товары и списываем по группировкам товар, сортировка аналогов - артикул
-
Мое решение. Оцените
Вложения:
YFred_1.19.dt
-
На самом деле, не очень ясно условие задачи. В задаче сказано, что если товара не хватает, то списываем его аналог. Я так полагаю, что загвоздка в условии, что один и тот же товар может являться аналогом различных ном. позиций. Мне кажется, что вполне себе можно использовать табличую часть справочника номенклатуры где и указать аналоги. Зачем делать рекурсию и искать аналогои аналогов? Пример: Есть товар на складе ручка 100 шт. у него есть аналог - карандаш 50 шт. А у карандаша, в свою очередь, есть аналог фломастер 10 шт. Если я продаю 160 ручек, то должны списаться все ручки, все карандаши и все фломастеры? Или документ не проводится, т.к. фломастер не является аналогом ручки? Хорошо, а если делать рекурсию, то условие выхода тогда какое? если у последнего аналога окажется аналог сам товар? В общем не понятно...
-
Друзья, не надо лепить горбатого. Не надо никаких кластеров, никаких аналогов аналогов с бесконечной вложенностью (про это в задании ни слова). Demos сказал все правильно, нужен регистр сведений для связи номенклатуры с аналогом. Табличные части справочника использовать не нужно, т.к. при открытии справочника, с сервера будут передаваться данные и о табличной части с аналогами. Зачем вам это? Из тысячи товаров, товаров с аналогами будет несколько, можно и регистр сведений открыть и отредактировать.
Вложения:
shlaev_1_19.dt
-
Интересная задача, решил таким образом:
-
Доброго времени суток!
Задачу решила. У меня получился 1 регистр сведений, 1 оборотный регистр по продажам (его я, в общем-то, только для отчета рисовала), и остаточный по товарам. Будем считать что решила верно.
-
На самом деле, не очень ясно условие задачи. В задаче сказано, что если товара не хватает, то списываем его аналог. Я так полагаю, что загвоздка в условии, что один и тот же товар может являться аналогом различных ном. позиций. Мне кажется, что вполне себе можно использовать табличую часть справочника номенклатуры где и указать аналоги. Зачем делать рекурсию и искать аналогои аналогов? Пример: Есть товар на складе ручка 100 шт. у него есть аналог - карандаш 50 шт. А у карандаша, в свою очередь, есть аналог фломастер 10 шт. Если я продаю 160 ручек, то должны списаться все ручки, все карандаши и все фломастеры? Или документ не проводится, т.к. фломастер не является аналогом ручки? Хорошо, а если делать рекурсию, то условие выхода тогда какое? если у последнего аналога окажется аналог сам товар? <img src="http://s10.ucoz.net/sm/10/wacko.gif" border="0" align="absmiddle" alt="wacko" /> В общем не понятно...
Мне кажется, что для каждой номенклатуры должен определяться перечень аналогов, если в этот перечень входит 3 номенклатуры ( Например Ручка = Ручка красна, Ручка синяя и т.д.) то остатки мы ищем только по этому ограниченному перечню + сама номенклатура. А если ручка синяя имеет аналог ручка оранжевая, то она на остатки не проверяется.
-
Доброго времени суток!
Задачу решила. У меня получился 1 регистр сведений, 1 оборотный регистр по продажам (его я, в общем-то, только для отчета рисовала), и остаточный по товарам. Будем считать что решила верно.
Не правильное решение у Вас. Если в табличной части РН будут 2 товара у которых совпадают аналоги то списание будет не правильным.
-
Решил проблему списания товаров с одинаковыми аналогами путем использования контейнера списанных аналогов в виде соответствия.
-
Прощу оценить.
-
Решил так.
-
Всем привет! А что за видео материал по этом у билету? Это который Гилев выложил на инфостарте? А есть бесплатный вариант? Потому что у меня хватит только на 4 видео.. Или в каком видео основные моменты разобраны? Я только их и скачаю.
-
http://курсы-по-1с.рф/free/
Внизу этого сайта ссылка:
Учет аналогов Это статья и несколько видео.
Ранее они уже выкладывалась на Nashe1C, но не все их там увидели.
55 Mb видео, длительность = 59 минут. Скачать: Analogs.rar (архив RAR, 55 Mb)
Источник: ©Курсы-по-1С.рф
-
Спасибо добрый человек! Буду изучать :-)
-
Все сделала как в видео. Но когда присоединяю к аналогам таблицу остатков номенклатуры то появляются записи с нулевым количеством. Что, в принципе, и правильно. Потому что не у всех аналогов есть остатки. И в движениях тоже появляются эти нулевые строки. А у Гилева нет таких строк. Подскажите, где моя ошибка.
-
Привет! Видео не смотрела, может написала чушь. Прошу посмотреть!
-
Решил так.
1. Зачем у тебя в документе расходная накладная 2 блокировки друг за другом по одному регистру с разными записями?
2. получается ты блокируешь только по той номенклатуре что указана в ТЧ, а аналоги не блокируешь, хотя списывать их будешь тоже.
3. соединения внутренние везде.
4. Динамической таблицы "списано" нет, а значит списываешь не актуальный остатки.
В общем док проведение расходной не верный!
-
Мое решение. Материалы с сайта Гилева еще не смотрела. Единственное, что радует в этой задаче после всех мучений - это отчет, который делается за две минуты. Остальное заняло больше 4-х часов.
-
Мое решение, правда я не знаю если правильно понял задачу. не ясно как списывать товары. Когда товара не достаточно на остатке списывать полностью аналог или списывать товар на сколько хватает и недостачу списывать из аналога?
-
У кого есть ссылка на видео от Гилева, поделитесь плз, а то по адресу http://курсы-по-1с.рф/free/ уже ничего нет
-
Всем привет. Нашел на инфостарте рассуждения Гилева, делал по ним. Избавился от документа УстановкаАналога, создал справочник ГруппыАналогов(иерархический), регистр сведений (измерение Номенклатура, ресурс Группа). Т.к. "замечательное свойство регистра сведений – контроль уникальности записей", мы сможем единственным образом определить пару Номенклатура - ГруппаАналогов. Проведение РасходнойНакладной здесь возможно только по новой методике, т.к. контроль остатков работает правильно только для нее. В регистр Продажи для поля Номенклатура я записываю группу из которой произошло списание, т.к. данный регистр отвечает за количество и сумму проданного товара (какой конкретно товар - неважно). Отчет идентичен книжному.
-
Всем привет.
Реализовал данную задачу следующим образом:
- Создал РС Аналоги с двумя измерениями Номенклатура и Аналог, ресурсов нет.
- При списании выбираю все аналоги(включая номенклатуру из документа), устанавливаю управляемую блокировку на аналоги
- Формирую таблицу значений тзВсеАналоги с колонками Номенклатура, КоличествоОстаток, СуммаОстаток
- Формирую запрос с итогами по номенклатуре и упорядочиваю по приоритету и артикулу
- Обхожу по номенклатуре, потом по аналогам, остатки аналогов ищю в таблице значений тзВсеАналоги, после списания корректируем остатки в таблице значений.
Прокомментируйте данное решение. При заполнении РС Аналоги мы должны самостоятельно перечислить все комбинации по аналогам, что наряду с гибкостью(например товар 1 является аналогом товара 2, но не наоборот) несет за собой достаточно большую трудоемкость по заполнению.
-
Долго искал подходящую концепцию решения в сети))! Вот лучше этой пока не нашел,может кто знает как улучшить.<hr>Вложения:
<a href="./ucoz_attachments/9/1.19.dt">1.19.dt</a>
Плохое решение
-
мой вариант
По Гилеву<hr>Вложения:
<a href="./ucoz_attachments/9/8740235.dt">8740235.dt</a>
плохое решение!
-
Всем привет.
приходная накладная, зачем товары выгрузить???
Выгрузка результата запроса в промежуточную таблицу (например, в таблицу значений) без необходимости
по реализации проблема копеек.
это бегло посмотрел...
-
Всем привет. Нашел на инфостарте рассуждения Гилева, делал по ним. Избавился от документа УстановкаАналога, создал справочник ГруппыАналогов(иерархический), регистр сведений (измерение Номенклатура, ресурс Группа). Т.к. "замечательное свойство регистра сведений – контроль уникальности записей", мы сможем единственным образом определить пару Номенклатура - ГруппаАналогов. Проведение РасходнойНакладной здесь возможно только по новой методике, т.к. контроль остатков работает правильно только для нее. В регистр Продажи для поля Номенклатура я записываю группу из которой произошло списание, т.к. данный регистр отвечает за количество и сумму проданного товара (какой конкретно товар - неважно). Отчет идентичен книжному.
Подкорректировал
-
Всем привет. Нашел на инфостарте рассуждения Гилева, делал по ним. Избавился от документа УстановкаАналога, создал справочник ГруппыАналогов(иерархический), регистр сведений (измерение Номенклатура, ресурс Группа). Т.к. "замечательное свойство регистра сведений – контроль уникальности записей", мы сможем единственным образом определить пару Номенклатура - ГруппаАналогов. Проведение РасходнойНакладной здесь возможно только по новой методике, т.к. контроль остатков работает правильно только для нее. В регистр Продажи для поля Номенклатура я записываю группу из которой произошло списание, т.к. данный регистр отвечает за количество и сумму проданного товара (какой конкретно товар - неважно). Отчет идентичен книжному.
Подкорректировал
120 дней нет не одного сообщения, но все же. Задача решена не правильно. Гилев выложил 7 уроков по аналогам, кто столкнулся с этой задачей посмотрите их (ютюб в помощь).
-
Задача довольно интересная. Сложность в том, что все задачи до этой решались со снятием остатков в один запрос и руки чешутся сделать аналогично и в этой, дабы всё было ёмко и оптимизировано. Но здесь нам необходимо смотреть актуальные остатки каждый раз, как мы списываем очередную номенклатуру, потому что при очередном списыванию могут списаться остатки с номенклатуры аналога, который тоже будет присутствовать в документе. Очень много дискуссий по поводу аналогов, в задаче написано следующее: "..аналоги - другие позиции номенклатуры с теми же потребительскими свойствами и ценой", т.е. могут быть разные номенклатуры, но с одинаковым набором характеристик. Так как в задачи ничего не сказано про назначение и периодичность аналогов, то проще всего в номенклатуру добавить реквизит с типом другого справочника, допустим "Аналоги".
Вариант моего решения во вложении.
-
По-моему у меня задача решена идеально.
Не нашел в сети другого внятного решения данной задачи.
Учтены все условия по аналогам: "...причем таких аналогов у товара может быть несколько..." и "...Следует учитывать, что один и тот же товар может являться аналогом различных номенклатурных позиций..."
Жду с нетерпением комментарии.
-
Сложность задачи в получении списка аналогов, который вкл в себя ВСЕ аналоги. А аналог это та же самая номенклатура и все её аналоги, при этом каждый аналог из этого списка имеет все те же аналоги любой номенклатуры из этого списка.
Поясню на цифрах: есть товар1, у него аналогов 1000 товаров. Тогда полный список номенклатур-аналогов должен включать 1001 товар, и у каждого товара из этого списка будет 1000 аналогов.
Само собой разумеется что дублирование в таком списке должно быть исключено.
В общем, для решения пишется сложный запрос, почти такой же как для решения задачи 1.4 сборника.
-
....при этом каждый аналог из этого списка имеет все те же аналоги любой номенклатуры из этого списка...
Откуда такой вывод? С чего Вы взяли? Зачем "изобретать" то, чего нет? Следуя условию задачи, у каждого товара список аналогов индивидуальный и должен формироваться вручную для каждого товара. Если товары А и Б являются аналогами товара В, то это совсем не значит, что товар А является аналогом товара Б. Этого в условии задачи нет. Зачем все усложнять?
...В общем, для решения пишется сложный запрос, почти такой же как для решения задачи 1.4 сборника.
А в чем сложность запроса в задаче 1.4? По-моему, все решается достаточно простым запросом (см. ниже):
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТЧ
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЧ.Номенклатура КАК Номенклатура,
| ТЧ.Количество КАК КоличествоВДокументе,
| ТЧ.Сумма КАК СуммаВДокументе,
| ТЧ.Номенклатура.Представление КАК НоменклатураПредставление,
| ОстаткиНоменклатурыОстатки.Партия КАК Партия,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СтоимостьОстаток, 0) КАК СуммаОстаток,
| ВЫБОР
| КОГДА ОстаткиНоменклатурыОстатки.Партия = &Партия
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ КАК Порядок
|ИЗ
| ТЧ КАК ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК ОстаткиНоменклатурыОстатки
| ПО ТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Порядок,
| ОстаткиНоменклатурыОстатки.Партия.МоментВремени" + СтрокаСортировки + "
|ИТОГИ
| МАКСИМУМ(КоличествоВДокументе),
| МИНИМУМ(СуммаВДокументе),
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Партия", Партия);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
-
Смешно даже. По логике должно быть понятно, раз товар А имеет аналог товар Б, то товар А уже является аналогом товара Б, независимо от того указываете Вы это где-то в системе или нет.
-
Смешно даже. По логике должно быть понятно, раз товар А имеет аналог товар Б, то товар А уже является аналогом товара Б, независимо от того указываете Вы это где-то в системе или нет.
Совсем даже не смешно. В учете товаров законы математики не приемлемы. Такое встречается сплошь и рядом. Видимо, Вы всегда работали в сфере IT и никогда не работали в сфере Производства или Торговли (маркетинга). Приведу яркий пример: Если закачивается товар А (производитель Китай), то Покупатель разрешает его заменить на аналог - товар Б (производитель Италия). Но в то же время, если заканчивается товар Б (производитель Италия), то Покупатель КАТЕГОРИЧЕСКИ отказывается от замены его товаром А (производитель Китай). При этом товары А и Б могут иметь совершенно аналогичные характеристики и стоимость. И это связано не только с качеством изделия. Иногда Покупатель ограничен требованиями стандартов и спецификаций, в которых замена изделий (конкретное название или артикул, номенклатурный номер) не допускается либо совсем, либо в определенном порядке.
-
желание Покупателя в задаче не предусмотрено, как и выбор артикулов.
-
желание Покупателя в задаче не предусмотрено...
При чем здесь желание Покупателя?
...как и выбор артикулов.
Не понял, что Вы имеете ввиду? При чем здесь артикул? Зачем их выбирать? Назначение артикула в данной задаче - установить порядок списания товаров-аналогов при выбытии какого-либо товара, если его количества не хватает и списываются аналоги. Больше артикулы в данной задаче никак не используются.
В условии задачи ЧЕТКО написано: "У некоторых товаров могут быть аналоги – другие позиции номенклатуры с теми же потребительскими свойствами и ценой, причем таких аналогов у товара может быть несколько.", а также "...один и тот же товар может являться аналогом различных номенклатурных позиций."
Где здесь про то, что нужно создавать какой-то ОБЩИЙ список аналогов в котором все товары будут взаимозаменяемы? Ведь написано - "... у некоторых товаров..." Значит нужно к некоторым позициям номенклатуры "привязать" товары-аналоги (которых может быть несколько и они могут быть аналогами некоторых других товаров).
Например:
ТОВАР А: Аналоги - ТОВАР Б, В, Г.
ТОВАР Е: Аналоги - ТОВАР Б, Ж, З.
ТОВАР Ж: Аналогов нет.
....
ТОВАР Я: Аналог - ТОВАР З
Если бы в условии имели ввиду, что нужно создавать ГРУППЫ ВЗАИМОЗАМЕНЯЕМЫХ ТОВАРОВ, то так бы и написали.
Я не настаиваю, что мое решение единственно правильное, даже не настаиваю, что оно вообще правильное. Наверняка есть множество способов и какие-то из них более оптимальные.
Но... у меня такое ощущение, что у Вас уже есть готовое решение данной задачи именно тем способом (или где-то его видели), который Вы защищаете и ни о чем другом Вы и слышать не хотите.
-
Конечно, оставьте все на откуп пользователю. Заведет аналог, будет списано, не сделает запись в базе данных, нет аналогов, нет продаж.
Это задача на использование механизмов платформы, а не на додумывание хотелок покупателей с их стандартами и требованиями.
Мое мнение, вашу хотелку можно реализовать через реквизит "Страна происхождения" или "Изготовитель" номенклатуры и фильтруйте дальше как угодно. Но это не тема задачи.
-
Конечно, оставьте все на откуп пользователю. Заведет аналог, будет списано, не сделает запись в базе данных, нет аналогов, нет продаж.
А как же иначе? По-моему именно так и задумано автором задачи... Именно пользователь и должен "заводить" аналоги для товаров.
Мое мнение, вашу хотелку можно реализовать через реквизит "Страна происхождения" или "Изготовитель" номенклатуры и фильтруйте дальше как угодно. Но это не тема задачи.
Что-то я не пойму, о чем это Вы. Вы вообще-то мое решение смотрели?
У меня в решении аналоги товаров вводятся в табличную часть "Список аналогов" элемента справочника "Номенклатура". Это позволяет ввести любое количество аналогов для любого товара. При этом сами аналоги также являются элементами справочника "Номенклатура" и могут являться аналогами для любого количества товаров. Что полностью соответствует условиям задачи и никаких противоречий я не вижу. Да, список аналогов нужно вводить вручную для каждого товара, но, по-моему, именно так и задумано автором задачи.
-
Вы вообще-то мое решение смотрели?
нет, чужими решениями не интересуюсь.
хранить аналоги в таб.части это очень плохо.
-
Вы вообще-то мое решение смотрели?
нет, чужими решениями не интересуюсь.
А-а-а! Я понял! К нам на минуточку спустился с небес Сенсей, Гуру, Непревзойденный Мастер! А я еще легкомысленно позволял себе с Вами спорить и высказывать крамольные мысли (о чем горько сожалею) ... Простите несчастного - не распознал!
Вы и на этот форум заходите лишь для того, чтобы посеять хоть малые крупицы Знания в наших серых головах.
Тогда, может быть, Великий Учитель снизойдет до нас и покажет нам свое (правильное) решение этой задачи. Чтобы все мы были поражены божественным светом Истины. Покорнийше просим!
-
читайте умные книжки.
-
читайте умные книжки.
А не подскажите (даже боюсь спросить) в какой умной книжке можно прочитать про организацию проводок документов при работе с АНАЛОГАМИ номенклатуры?
-
С вашим мышлением все ясно, Вам к психиатру, хамить и истерить здесь не надо.
Как вернется разум, читайте умные книжки, методические указания 1 С, записывайтесь на сертифицированные курсы 1С, смотрите видео от учебных центров 1С, в том числе видео автора этого сайта Чистова П. Расширяйте кругозор.
Все сведения как их приобрести есть в интернете.
А по теме задачи вот только некоторые цитаты из источников для размышления ( ведь смотрим в книгу видим фигу!!!), см. вложение.
С Вами все.
-
С вашим мышлением все ясно, Вам к психиатру, хамить и истерить здесь не надо.
Как вернется разум...
Уважаемый Ильнур1975!
Я прошу Вас великодушно меня простить, если я Вас чем- то обидел!
PS. Никакого хамства на Ваш счёт я, по моему мнению, не допускал. Напрасно Вы перешли к оскорблениям. Это никого не красит. Тем более Вы позволяете себе такие высказывания в адрес человека, который старше Вас (а мне 52 года). Видно, что Вы привыкли общаться со школотой желторотой. Мои ироничные формулировки - вполне, как мне кажется, оправданы. Вы ведёте себя слишком ВЫСОКОМЕРНО. Помните, что гордыня - один из смертных грехов... Нужно быть проще, и народ к Вам потянется.
PSS. Надеюсь, Вы также передо мной извинитесь за свое недостойное поведение. Но, впрочем, это Ваше дело...
-
Здравствуйте, не нашел каких либо правильных решений, как и какого либо описания подхода решения задач по аналогам. Мой вариант - списание с помощью соответствия
-
По-моему у меня задача решена идеально.
Не нашел в сети другого внятного решения данной задачи.
Учтены все условия по аналогам: "...причем таких аналогов у товара может быть несколько..." и "...Следует учитывать, что один и тот же товар может являться аналогом различных номенклатурных позиций..."
Жду с нетерпением комментарии.
Красивое решение и понятное!
-
согласен