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

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

ksandr

  • Проверенный
  • ***
  • Сообщений: 138
  • ФИО: ksandr
Re: Задача 1.01
« Ответ #465 : Июнь 30, 2015, 12:07:06 am »
Уже не раз обсуждалось, правильным считается 2/3*6, но перед этим делать проверку на копейки, то есть если списуем все, то и считать ничего не надо, просто списуем весь остаток суммы.

Demy

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Demy
Re: Задача 1.01
« Ответ #466 : Июнь 30, 2015, 09:45:56 am »
Уже не раз обсуждалось, правильным считается 2/3*6, но перед этим делать проверку на копейки, то есть если списуем все, то и считать ничего не надо, просто списуем весь остаток суммы.
А можно поинтересоваться кем считается? Разговаривал с экзаменаторами, они сказали что проблему копеек можно решать любым способом.


ksandr

  • Проверенный
  • ***
  • Сообщений: 138
  • ФИО: ksandr
Re: Задача 1.01
« Ответ #467 : Июнь 30, 2015, 12:59:00 pm »
И здесь обсуждалось со ссылками на конкретные ответы и на других профильных ресурсах, вот тема на местном форуме http://forum.chistov.pro/index.php?topic=1563.0.
А вот из рекомендаций по подготовке к специалисту:
"7. Правильный порядок расположения операндов при расчете себестоимости. Проблема копеек. Есть мнение, что правильно делать так:

НоваяЗапись.Сумма = Выборка.КоличествоДокумент * Выборка.СуммаОстаток / Выборка.КоличествоОстаток;

То есть, умножение идет перед делением, что обеспечит в случае 3 * 10 / 3 число 10 а не число 9.99999999(9), как может быть при совсем неправильном порядке, однако методически такой способ не считается верным (это слова преподавателя из 1С), во-первых, деление по методике должно идти сначала, но деление не суммы на остаток количества, а количества к списанию на количество остатка, во-вторых, при равенстве количеств, лучше просто взять сумму, поэтому делая так, как ниже, проблем быть не должно:

НоваяЗапись.Сумма = ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток,
 Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток,2) * Выборка.СуммаОстаток);

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

Mary

  • Новичок
  • *
  • Сообщений: 2
Задача 1.01
« Ответ #468 : Июль 01, 2015, 12:42:17 pm »
Всем привет!

Посмотрите, пожалуйста, моё решение на предмет оптимальности и наличии ошибок.
Буду рада любой помощи. Опыта в программировании мало.

При решении возник вопрос: в обработке проведения РН надо ли проверять заполнение реквизита Вид Номенклатура?

Mary

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 1.01
« Ответ #469 : Июль 02, 2015, 03:44:50 pm »
Выкладываю измененную версию. Добавила в свойствах реквизита Номенклатура отбор по Товару.

Опытных специалистов прошу проверить моё решение и написать замечания. Заранее спасибо.

Denis.Zubarev.1985

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Зубарев Денис Александрович
Re: Задача 1.01
« Ответ #470 : Июль 03, 2015, 09:14:21 am »
Всем привет!
Начал готовиться к спецу. Ребят, кому не трудно посмотрите, интересует есть ли грубые ошибки, что можно оптимизировать?

Albert

  • Пользователь
  • **
  • Сообщений: 29
  • ФИО: Альберт
Re: Задача 1.01
« Ответ #471 : Июль 03, 2015, 02:34:27 pm »
Всем привет!
Начал готовиться к спецу. Ребят, кому не трудно посмотрите, интересует есть ли грубые ошибки, что можно оптимизировать?
Грубовато , конечно...Регистр ОстаткиНоменклатуры нужен именно для контроля остатков, у Вас он используется формально,контролируете остатки по регистру ОстаткиНоменклатурыПоПартиям. Как раз фишка в том,чтобы его не блокировать почем зря, а записав движения по ОстаткамНоменклатуры,проверить, не ушли ли в "минуса", а потом считать себестоимость и т.д.
Очень подробная статья у ПвлаЧистова,посмотрите. http://expert.chistov.pro/public/195591/

malikov_pro

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Маликов А.
Re: Задача 1.01
« Ответ #472 : Июль 18, 2015, 10:16:56 am »
Мой вариант решения, без наворотов

1. за двойную блокировку регистра ПартииТоваров могут балл снять? почему двойная,
первая при зачистке движений (блокирую номенклатуру старого документа)
вторая по временной таблице текущего документа

Буду благодарен если просмотрите на момент ошибок, недочетов.

p.s ошибку с непроверкой реквизита ВидНоменклатуры в спр. Номенклатура нашел.
p.s по блокировке решение: предполагаем что сначала блокируется Остатки товаров и соотв параллельно проводимый документ до партий не дойдет, блокирую только по ТЧ объекта.
« Последнее редактирование: Июль 18, 2015, 11:58:02 am от malikov_pro »

Region_64

  • Новичок
  • *
  • Сообщений: 3
  • ФИО: Дмитрий
Re: Задача 1.01
« Ответ #473 : Июль 30, 2015, 10:53:44 am »
Парни, всем доброго времени суток!
Я как типичный новичок, который начал подготовку, прошу оценить мою первую решенную задачу) Вот...

clareon

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Алексей
Re: Задача 1.01
« Ответ #474 : Июль 30, 2015, 11:39:57 pm »
Region_64, Аккуратное решение, мне нравиться. Пару помарок - движение по продажам у тебя количество не правильно ложится - "Движение.Количество = ВыборкаНоменклатура.Количество();" (ты функцию "количество()" вызываешь вместо количества. И второе, если у тебя отрицательные остатки и ты взводишь флаг "отказ = истина" - дальше незачем формировать движения, а ты в любом случае их формируешь...

clareon

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Алексей
Re: Задача 1.01
« Ответ #475 : Июль 31, 2015, 12:17:18 am »
Denis.Zubarev.1985, С блокировками беда :
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
       .........
Иначе
    ..........
КонецЕсли;   

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

Region_64

  • Новичок
  • *
  • Сообщений: 3
  • ФИО: Дмитрий
Re: Задача 1.01
« Ответ #476 : Июль 31, 2015, 11:40:13 am »
количество не правильно ложится - "Движение.Количество = ВыборкаНоменклатура.Количество();"


 взводишь флаг "отказ = истина" - дальше незачем формировать движения, а ты в любом случае их формируешь...

Спасибо!!! Все учел.

klyukinyurij

  • Новичок
  • *
  • Сообщений: 4
Re: Задача 1.01
« Ответ #477 : Август 15, 2015, 12:25:25 am »
Я новичок в 1С. Готовлюсь к спецу по платформе. Прошу проверить мое решение.

Demy

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Demy
Re: Задача 1.01
« Ответ #478 : Август 15, 2015, 10:21:48 pm »
И здесь обсуждалось со ссылками на конкретные ответы и на других профильных ресурсах, вот тема на местном форуме http://forum.chistov.pro/index.php?topic=1563.0.
А вот из рекомендаций по подготовке к специалисту:
"7. Правильный порядок расположения операндов при расчете себестоимости. Проблема копеек. Есть мнение, что правильно делать так:

НоваяЗапись.Сумма = Выборка.КоличествоДокумент * Выборка.СуммаОстаток / Выборка.КоличествоОстаток;

То есть, умножение идет перед делением, что обеспечит в случае 3 * 10 / 3 число 10 а не число 9.99999999(9), как может быть при совсем неправильном порядке, однако методически такой способ не считается верным (это слова преподавателя из 1С), во-первых, деление по методике должно идти сначала, но деление не суммы на остаток количества, а количества к списанию на количество остатка, во-вторых, при равенстве количеств, лучше просто взять сумму, поэтому делая так, как ниже, проблем быть не должно:

НоваяЗапись.Сумма = ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток,
 Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток,2) * Выборка.СуммаОстаток);

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

физ

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 1.01
« Ответ #479 : Сентябрь 11, 2015, 10:30:38 am »
Свое решение тоже на обсуждение выставлю