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

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

SanjaKaiser

  • Пользователь
  • **
  • Сообщений: 30
  • ФИО: SanjaKaiser
Задача 1.01
« Ответ #315 : Октябрь 28, 2013, 01:19:06 pm »
Прокомментируйте пожалуйста решение!
Вложения:
1Cv8__1.1.dt

32ops

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Островский Павел
Задача 1.01
« Ответ #316 : Декабрь 28, 2013, 07:50:32 pm »
Здравствуйте! Принимайте пополнение)) Прокомментируйте пожалуйста решение!

Добавлено (28.12.2013, 19:50)
---------------------------------------------
да уж. с суммой накасячил, блокировку не поставил, чеж блин на экзамене будет((( ужос


Вложения:
5994738.dt


Sadr

  • Пользователь
  • **
  • Сообщений: 57
  • Спец: Платформа, БП, УТ, ЗУП
  • ФИО: АС
Задача 1.01
« Ответ #317 : Январь 05, 2014, 11:42:55 pm »
32ops, посмотрел Ваше решение. Сразу оговорюсь я еще не сдавал экзамен, только готовлюсь.

 Что бросилось мне в глаза - может это и не ошибки, но я бы сделал по другому:
 1. В Номенклатуре реквизит Услуга сделать Булево, несмотря на имеющиеся в каркасе Перечисление, так как это по моему будет экономить время.

 2. Вот это
Код
Запрос.УстановитьПараметр("Момент", ?(РежимПроведения=РежимПроведенияДокумента.Оперативный,Неопределено, МоментВремени()));

 наверное, лишнее, вот ссылка

 3. Вставки условия в текст запроса усложняет открытие конструктора, поэтому стараться избежать таких вставок.

 4. По причине пункта 3 не смог открыть конструктор запроса в РН, поэтому не точно, но, кажется там в итогах не правильное группирование.

 5. Блокировки (точнее их отсутствие) Вы сами заметили. Но с блокировками я и сам не разобрался еще.

 6. 
Код
Стоимость=?(Списываем=ВыборкаДетальныеЗаписи.КоличествоОстаток или списываем=0,

 не понятно зачем здесь списываем=0

 7. Нет расчета Суммы в ТЧ документов. Может это на экзамене и не критично, но для удобства при отладке. Вообще над формами доков поработать бы хотя бы минимум.

 Мое решение -
 

Вложения:
Sadr_1_1.dt

32ops

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Островский Павел
Задача 1.01
« Ответ #318 : Январь 06, 2014, 12:48:32 am »
по 1,2 уже принял для себя решение, буду делать как делал)) по запросам пытаюсь отучиться от вставок, 6) это была попытка проверки списываемого остатка на ноль, т.е. должно быть ВыборкаДетальныеЗаписи.КоличествоОстаток=0. Тоже типа решил что буду так делать, если есть деление на что-то, то и проверка на ноль должна быть. А откуда там ноль возьмется, дело третье. по 7 тоже - на экзамене точно делать не буду. Спасибо за проверку!

Добавлено (06.01.2014, 00:48)
---------------------------------------------
Sadr, Посмотрел бегло
 Не понравилось:
 1) в расходной при отказе все равно формируешь движения, хотя они уже точно не запишутся.
 2) группировка в СКД в отчете продажа (СКД сама группирует)  и выражение для ДатаОкончания (если не задать дату окончания приведет к концу дня и в отчете пусто, а предполагается что все с даты начала должно попасть)


Sadr

  • Пользователь
  • **
  • Сообщений: 57
  • Спец: Платформа, БП, УТ, ЗУП
  • ФИО: АС
Задача 1.01
« Ответ #319 : Январь 06, 2014, 12:39:56 pm »
Цитата 32ops ()
1) в расходной при отказе все равно формируешь движения, хотя они уже точно не запишутся.2) группировка в СКД в отчете продажа (СКД сама группирует) и выражение для ДатаОкончания (если не задать дату окончания приведет к концу дня и в отчете пусто, а предполагается что все с даты начала должно попасть)
Спасибо! Согласен, принял к сведению. В дальнейших решениях буду исправляться.

 Добавлено (06.01.2014, 12:39)
 ---------------------------------------------
 
Цитата Sadr ()
2. Вот это

 
Код
Запрос.УстановитьПараметр("Момент", ?(РежимПроведения=РежимПроведенияДокумента.Оперативный,Неопределено, МоментВремени()));

 наверное, лишнее, вот ссылка
 
Цитата 32ops ()
по 1,2 уже принял для себя решение, буду делать как делал))
Вот еще подтверждение - что на экзамене так делать неправильно: ссылка (см. последнее сообщение от П.Белоусова)
« Последнее редактирование: Январь 06, 2014, 12:40:50 pm от Садретдинов Артур Салаватович »

32ops

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Островский Павел
Задача 1.01
« Ответ #320 : Январь 06, 2014, 03:41:53 pm »
Sadr, там нет подтверждения, что неправильно так делать. Белоусов говорит о том что остатки нужно контролировать всегда (приведенный пример сильно отличается от моего решения). И в твоем и в моем варианте остатки контролируются всегда, отличие в том, что в моем при оперативном проведении это происходит быстрее. Когда я задаю момент времени=Неопределено, это означает, что остатки будут браться из таблицы итогов, а не рассчитываться.

Pro100KoT

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Кирилл
Задача 1.01
« Ответ #321 : Январь 09, 2014, 05:43:33 pm »
Всем привет!Прошу проверить моё решение
Вложения:
Pro100KoT_1.1.dt

yaroshaa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: yaroshaa
Задача 1.01
« Ответ #322 : Февраль 02, 2014, 03:23:39 pm »
В разных уроках по разному, в одних  услуги записываются в  РН Продажи в других нет,  подскажите  пожалуйста как правильно. В условии  задачи сказано что " И услуги и товары указываются в одной табличной части", в примере  отчета  Услуга  указывается в продажах??????.........

Chichiq

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: tatyana
Задача 1.01
« Ответ #323 : Март 05, 2014, 09:40:02 am »
Привет всем. Посмотрите мое решение пожалуйста
Вложения:
8106632.dt

CeHbKA

  • Пользователь
  • **
  • Сообщений: 88
Задача 1.01
« Ответ #324 : Март 27, 2014, 01:57:59 pm »
И меня посмотрите, плиз))
Вложения:
CeHbKA_1.1.dt

YFred

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: YFred
Задача 1.01
« Ответ #325 : Март 31, 2014, 02:53:53 pm »
Только начал готовиться,
 Я правильно понял, что в этой задачи используется старый метод контроля остатков (до записи)?

IT_PROGRAMMIST

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Дмитрий
Задача 1.01
« Ответ #326 : Март 31, 2014, 10:32:00 pm »
YFred, да

 Добавлено (31.03.2014, 22:32)
 ---------------------------------------------
 CeHbKA, быстро просмотрел твое решение.отчеты не глядел.
 1) В приходной накладной лучше сразу в запросе отсекать услуги, а не при обходе результата запроса.И если ты уже выбираешь запросом, то группируй записи.
 2) В расходной накладной:
 а)  я бы в это код 
 Движения.ОстаткиТоваров.Записывать = Истина;
 Движения.ОстаткиТоваров.Очистить();
 добавил
 Движения.ОстаткиТоваров.Записать();

 б) Зачем в запросе по получению остатков в итогах берешь СРЕДНЕЕ(Количество), я бы взял МАКСИМУМ(Количество)
 в)при расчете себестоимости ты пишешь так: Движение.Стоимость = (ВыборкаНоменклатура.Стоимость/ВыборкаНоменклатура.Остаток)*НужноСписать.
 правильно так:Движение.Стоимость = ?(ВыборкаНоменклатура.Остаток>НужноСписать, НужноСписать*ВыборкаНоменклатура.Стоимость/ВыборкаНоменклатура.Остаток,ВыборкаНоменклатура.Стоимость);
 г) не забывай индексировать поля в запросах
 д) Движения.Продажи.БлокироватьДляИзменения = Истина; Это лишнее
 е) при обходе, чтобы отделить услуги, я бы сразу написал вот так(не принципиально конечно):
 Если не Выборка.ЭтоУслуга Тогда
 контроль остатков и т.д.....
 КонецЕсли
 движения по продажам.
 А ты везде проверяешь на услуги.
 ж)
 твой контроль остатков
 Если Выборка.Количество>Выборка.Остаток И НЕ Выборка.ЭтоУслуга Тогда
 Отказ = Истина;
 Сообщение = Новый СообщениеПользователю;
 Сообщение.Текст = "Недостаточно товара "+Выборка.Номенклатура;
 Сообщение.Сообщить();
 Продолжить;
 КонецЕсли;

 Правильнее так:
 Если Выборка.Количество>Выборка.Остаток И НЕ Выборка.ЭтоУслуга Тогда
 Сообщение = Новый СообщениеПользователю;
 Сообщение.Текст = "Недостаточно товара "+Выборка.Номенклатура;
 Сообщение.Сообщить();
 Отказ = Истина;
 КонецЕсли;
 Если Отказ Тогда
 Продолжить;
 КонецЕсли

 Удачи....
« Последнее редактирование: Март 31, 2014, 10:39:13 pm от Дмитрий »

CeHbKA

  • Пользователь
  • **
  • Сообщений: 88
Задача 1.01
« Ответ #327 : Апрель 01, 2014, 10:30:18 am »
Так-с, по-порядку
 1) В чему разница между
 
Код
Движение.Стоимость = (ВыборкаНоменклатура.Стоимость/ВыборкаНоменклатура.Остаток)*НужноСписать

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

 2) Опять же, в чем разница?
 
Код
Если Выборка.Количество>Выборка.Остаток И НЕ Выборка.ЭтоУслуга Тогда  
  Отказ = Истина;  
  Сообщение = Новый СообщениеПользователю;  
  Сообщение.Текст = "Недостаточно товара "+Выборка.Номенклатура;  
  Сообщение.Сообщить();  
  Продолжить;  
  КонецЕсли;
 
Код
Если Выборка.Количество>Выборка.Остаток И НЕ Выборка.ЭтоУслуга Тогда  
  Сообщение = Новый СообщениеПользователю;  
  Сообщение.Текст = "Недостаточно товара "+Выборка.Номенклатура;  
  Сообщение.Сообщить();  
  Отказ = Истина;  
  КонецЕсли;  
  Если Отказ Тогда  
  Продолжить;  
  КонецЕсли

IT_PROGRAMMIST

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Дмитрий
Задача 1.01
« Ответ #328 : Апрель 01, 2014, 10:41:01 am »
CeHbKA,
 1) Использование неправильных или упрощенныхалгоритмов при расчете значений ресурсов регистра. Например, при решении
 «проблемы копеек»(0.5-2 балла).
 2) Например.В документе будет 50 позиций и в позиции № 1 у тебя количество в документе будет больше остатка- система ругнется, а для остальных 49 позиций(которые есть на остатке) будет пытаться списывать по партиям(хотя это нам не нужно ведь у нас уже документ не проведется).
 а Условие
 Если Отказ Тогда
 Продолжить;
 КонецЕсли
 нас от это избавит.
« Последнее редактирование: Апрель 01, 2014, 12:32:30 pm от Дмитрий »

CeHbKA

  • Пользователь
  • **
  • Сообщений: 88
Задача 1.01
« Ответ #329 : Апрель 01, 2014, 02:19:17 pm »
IT_PROGRAMMIST,спасибо большое!
 А за п.2 баллы снимают?