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

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

Oliver

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Юрий
Задача 1.19
« Ответ #75 : Сентябрь 14, 2012, 01:07:11 am »
RoMeL, про индексирование всё верно. Отмечу в Ваших решениях часто встречаю неиндксированные измерения РН - не забывайте.

AlexTimin

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей
Задача 1.19
« Ответ #76 : Март 11, 2013, 09:08:04 am »
Чисто теоретически, если списать по новой методике? Списать номенклатуру вместе с аналогами и проверить в конце, где минус. Единственное, будет заморочка с выводом чего не хватило в случае списания.

Добавлено (11.03.2013, 09:08)
---------------------------------------------
А нет не прокатит так.

« Последнее редактирование: Март 07, 2013, 11:10:40 am от Алексей »


leonid_kirienko

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Леонид
Задача 1.19
« Ответ #77 : Апрель 13, 2013, 10:49:27 pm »
Еще один вариант с использованием ТЗ. Чужие решения не смотрел.
 С аналогами не мудрил. У каждого элемента справочника в ТЧ "Аналоги" перечисляем что нужно. Думаю нет смысла рассматривать вариант с аналогами аналогов. Не очень гибко, но думаю пойдет.
Вложения:
6101604.dt

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.19
« Ответ #78 : Июнь 18, 2013, 01:34:42 am »
leonid_kirienko
 В вашем варианте решения, если в расходной накладной использовать аналог, то он спишется 2 раза. Например пришло 1 обычная ручка и 5 синих. Делаем расходную накладную на 6 синих и 1 обычную ручку. Спишется 5 синих и 2 (1+1) обычных ручки.

 Выкладываю свой вариант решения (запрос сложный получился, но по моему работает)
Вложения:
KTT_1_19.dt

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 1.19
« Ответ #79 : Июль 01, 2013, 08:36:59 pm »
запрос в расходной написал быстро, но зато пол дня писал алгоритм списания на основании запроса, попытался сжать максимально.
 подглядел только структуру регистра Продажи, где добавил помимо измерения Номенклатура еще Аналог.
 аналоги сделал ч\з регистр сведений.

 
Цитата (TuMyP1985)
leonid_kirienko
 В вашем варианте решения, если в расходной накладной использовать аналог, то он спишется 2 раза. Например пришло 1 обычная ручка и 5 синих. Делаем расходную накладную на 6 синих и 1 обычную ручку. Спишется 5 синих и 2 (1+1) обычных ручки.

 да я то же у него нашел эту ошибку, у вас то же ошибка, я добавил в вашей базе в аналоги у Портсигар(имп.) - Портсигар(отеч.) а также у Портсигар(отеч.) - Портсигар(имп.), и мне удалось списать 21шт. - Портсигар, и 21шт. Портисгар(отеч.), тогда как всего на остатках портсигаров всего 22шт. Вашу базу с этой ошибкой также выкладываю.

 P.S. кстати, почему-то многие забывают про последовательности, к\е так активно использовались в первых задачах по ОУ
Вложения:
1883634.dt
KTT_1_19_2vozvr.dt
« Последнее редактирование: Июль 01, 2013, 08:39:03 pm от Артур »

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.19
« Ответ #80 : Июль 01, 2013, 11:39:24 pm »
Цитата (artfa)
artfa
Спасибо за замечание, исправил - добавил немного строк в алгоритм для того что бы исключить задвоение остатков, в запрос не стал лезть.
 Ваше решение посмотрел, не смог получить неверных результатов в программе, все хорошо)
Вложения:
1916026.dt

bilateral

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей
Задача 1.19
« Ответ #81 : Июль 02, 2013, 07:17:42 pm »
Hell Yeah !!!

 Не скажу что "сделал сам", но хоть понял как делать.

 Посмотрите пожалуйста кому не жаль времени - вроде все есть и блокировки и списание правильное smile Задача была изначально (для меня) трудной к восприятию, но все таки далась. Хотя по прежнему не уверен что вложился бы на экзамене во время.

 Есть точно ошибки в некоторых ВТ типа - не проиндексировал или переиндексировал поля, и не выбрал предстваление поля, для Сообщения, но на это уже не стал заморачиваться. Сильно задача показалась нелегкой... для понимания.

Добавлено (02.07.2013, 19:17)
---------------------------------------------

Цитата (TuMyP1985)
запрос сложный получился, но по моему работает

 Я немного потестил вашу базу (удалил документы, добавил аналоги)... В итоге добился того,что база делает движения по остаткам и продажам с пустыми строками. Если интересно - посмотрите (вашу базу с ошибкой прилагаю)

 З.Ы. По возможности от вас ожидаю взаимного тестирования моей базы.
Вложения:
bilateral_upr19.dt
« Последнее редактирование: Июль 02, 2013, 07:02:04 pm от Алексей »

bilateral

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей
Задача 1.19
« Ответ #82 : Июль 02, 2013, 07:19:04 pm »
База с ошибкой для TuMyP1985
Вложения:
1985_fixed.dt

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.19
« Ответ #83 : Июль 03, 2013, 12:23:06 am »
Благодарен за замечание. Нужно было просто добавить строчку в код "Если Списываем=0 Тогда Продолжить; КонецЕсли;" - избавиться от появления пустых движений.

 
Цитата (bilateral)
bilateral

 обработке проведения расходной накладной:
 1) у вас:
 Движения.Продажи.Очистить(); Движения.Продажи.Записать();, 
 я думаю хватит только Движения.Продажи.Записать(); (т.к. в "Движения" незачем очищать, там и так пусто)  (то же самое и для Движения.ОстаткиНоменклатуры)

 2) в блокировках у вас:
 ЭлементБлокировки.ИсточникДанных = Результат;
 ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
 ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");
 вот тут я не уверен, но написал бы вместо "ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");" - 
 "ЭлементБлокировки.УстановитьЗначение("Склад",Склад)" (у нас склад один и прописан он в шапке, если использовать как у вас, то если будет 100 строк номенклатур,
 то в них будет 100 раз прописан один и тот же склад).

 3) ну и немного "побурчу" по реализации аналогов.
 Мне тяжело было понять у вас суть аналогов.
 Как я понял вы создали отделый объект "справочник аналоги", у номенклатуры добавили реквизит "аналог". И вся номенклатура с одинаковым
 значением реквизита "аналог" - друг друга взаимозаменяет?
 Если так, то предположим, что есть номенклатура П1, П2, П3, у них одинаковый реквизит "аналог". Тогда получается, что П1,П2 и П3 взаимозаменяемы.
 А если заказчик хочет, что бы П2 было аналогом для П1 и П3, но П1 не являлось аналогом для П3(и наоборот), как это реализуется в вашей схеме?

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

 (прикрепляю свою базу)
Вложения:
8315775.dt

bilateral

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей
Задача 1.19
« Ответ #84 : Июль 03, 2013, 12:20:30 pm »
1. Очистить тоже раньше не использовал. Но, сейчас начал смотреть курс Чистова по подготовке к спецу (новый за 2012 год) и там в нулевом блоке он обосновывает что надо Очистить и записать. Попробуйте сделать обычную форму, запуститься в обычном приложении и без очистить по перепроводить документы. Очистить надо для того, что бы решение работало и в обычном приложении. Я проверял. Сам Чистов говорит, что в требованиях не указано что надо это обеспечивать, но советовал очистить тоже писать.
 2.Результат - тоже из курса подсмотрел. Там предлагает 2 варианта блокировок - таб часть, и результат запроса.
 В моем случае, я формирую таблицу со складом, и используюю ее в блокировках и в отборе по таблице остатков. Вариант 
 
Код
(Номенклатура, Склад) В ( Выбрать ТабДок.Номенклатура, ТабДок.Склад Из ... )
лучше, чем 
 
Код
(Номенклатура) В ( Выбрать ТабДок.Номенклатура Из ... )
 И Склад = &Склад
3. Я исходил из того, что Н1 аналог Н2 аналог Н3. Значит, Н1  аналог Н3. Это как с номенклатурными группами. Объединяю товары с похожими характеристиками (взаимозаменяемые) в одну группу. Например (увидел эту идею в этой ветке, где то выше) "Ботинки синие","Ботинки красные","Ботинки черные". Почему синие нельзя заменять черными? В задаче написано
Цитата
" ...У некоторых товаров могут бытьаналоги - другие позиции номенклатуры с теми же потребительскими свойствами и
 ценой, причем таких аналогов у товара может быть несколько..."
у меня это вроде так и есть, а остальное на усмотрение решающего, если другого не сказано в условии. Мне показалось так легче для понимания, и логичнее. И запрос вроде более менее простой и короткий получается, что для экзамена важно (по времени).

 З.Ы. Спасибо за уделенное время.

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.19
« Ответ #85 : Июль 03, 2013, 02:49:28 pm »
smile значит нет замечаний при тестировании вашей базы.
 Нужно запомнить про ".очистить()" и "(Номенклатура, Склад) В ( Выбрать ТабДок.Номенклатура, ТабДок.Склад Из ... )" - постараюсь использовать при решении след. задач.

 P.S. Курсы скачены - на выходных их просмотрю)

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 1.19
« Ответ #86 : Июль 03, 2013, 06:06:02 pm »
Цитата (TuMyP1985)
P.S. Курсы скачены - на выходных их просмотрю)

 не подскажите откуда скачали?

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.19
« Ответ #87 : Июль 03, 2013, 07:36:42 pm »
Цитата (artfa)
artfa
Конечно подскажу) вот тут качайте:
 http://xn----1-bedvffifm4g.xn--p1ai/free/

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 1.19
« Ответ #88 : Июль 03, 2013, 07:50:45 pm »
Цитата (TuMyP1985)
Конечно подскажу) вот тут качайте:
 http://xn----1-bedvffifm4g.xn--p1ai/free/
спасибо, это у меня уже есть, bilateral упомянул про курсы Чистова

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.19
« Ответ #89 : Июль 03, 2013, 08:15:45 pm »
А я от туда скачал курсы, в том числе по разбору двух задач "Оперативный учет", вот думал он их и имел ввиду. Понятно.