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

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

ID443

  • Пользователь
  • **
  • Сообщений: 24
Re: Задача 1.01
« Ответ #495 : Октябрь 08, 2015, 11:00:26 am »
В условиях запроса часто вот такая строка попадается: "РасходнаяНакладнаяСписокНоменклатуры.Ссылка = Ссылка". Что это условие означает?

Это условие ГДЕ , для того чтобы в отбор попали записи ТОЛЬКО этого документа т.е  равные текущей Ссылке.
Если убрать это условие -то в результат попадут ВСЕ записи ВСЕХ Расходных Накладных, которых будет(или есть) много.
Спасибо!

Viktorka

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Виктория
Re: Задача 1.01
« Ответ #496 : Октябрь 14, 2015, 12:33:50 pm »
Всем добрый день! Мое решение для обсуждения. Прошу прокомментировать  :).


ID443

  • Пользователь
  • **
  • Сообщений: 24
Re: Задача 1.01
« Ответ #497 : Октябрь 14, 2015, 04:06:44 pm »
Всем добрый день! Мое решение для обсуждения. Прошу прокомментировать  :).
Зачем блокировка в Приходной накладной?

iipobaji

  • Модератор форума
  • Пользователь
  • *****
  • Сообщений: 62
  • iipobaji
  • ФИО: iipobaji
Re: Задача 1.01
« Ответ #498 : Октябрь 16, 2015, 04:24:40 pm »
На всеобщее обозрение ;)

Дмитрий123123

  • Новичок
  • *
  • Сообщений: 1
Re: Задача 1.01
« Ответ #499 : Ноябрь 09, 2015, 08:18:55 pm »
День добрый, подскажите большая ли разница, если в отчете продажи код (колонка прибыль)
ВЫБОР
КОГДА ПродажиОбороты.Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Товар)
ТОГДА ПродажиОбороты.СуммаОборот - ОстаткиНоменклатурыОбороты.СуммаРасход
ИНАЧЕ ПродажиОбороты.СуммаОборот
КОНЕЦ КАК Прибыль
заменен на
ПродажиОбороты.СуммаОборот - ЕСТЬNULL(ОстаткиНоменклатурыОбороты.СуммаОборот, 0)

Т.е. отсутствие проверки ВидНоменклатуры сильно сказывается на производительности и является ли это ошибкой?

Прошу прощения, если вопрос задавался где-то выше

GPetr

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Petr
Re: Задача 1.01
« Ответ #500 : Декабрь 03, 2015, 01:48:32 pm »
На всеобщее обозрение ;)

1. в приходе не учитывается что пришло, услуга или товар.
2. насколько корректно брать метод списания на прямую как в 8.2 не скажу, лично я использую запрос.
3. Расход некорректен
4. Тестируй на больших данных

выкладываю свою версию... плюсы и минусы в студию.
спасибо.

Odin777

  • Пользователь
  • **
  • Сообщений: 12
  • ФИО: Иван
Re: Задача 1.01
« Ответ #501 : Февраль 02, 2016, 06:34:51 pm »
выкладываю свою версию... плюсы и минусы в студию.
спасибо.
1)В документе Приходная в ОбработкеПроведения "Движения.ОстаткиНоменклатуры.Записать();" для чего?
2)В документе Расходная в ОбработкеПроведения "ВЫБРАТЬ
      |   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
      |   СУММА(ЕСТЬNULL(РасходнаяНакладнаяСписокНоменклатуры.Количество, 0)) КАК Количество,
      |   СУММА(ЕСТЬNULL(РасходнаяНакладнаяСписокНоменклатуры.Сумма, 0)) КАК Сумма
      |ПОМЕСТИТЬ ТЧ
" для чего проверять естьнулл для полей табличной части?
3)В запросе СКД отчет Продажи
ЕСТЬNULL(ПродажиОбороты.ВыручкаОборот - ПродажиОбороты.СебестоимостьОборот, 0) КАК Прибыль, можно на закладке вычисляемые поля произвести расчет поля Прибыль

ЗЫ Также мое решение, если есть вопросы и замечания пишите!
« Последнее редактирование: Февраль 02, 2016, 06:50:08 pm от Odin777 »

Calibrio

  • Новичок
  • *
  • Сообщений: 9
  • я только учусь
Re: Задача 1.01
« Ответ #502 : Февраль 03, 2016, 03:09:52 pm »
ЗЫ Также мое решение, если есть вопросы и замечания пишите!

Мое мнение:

Шапка в отчетах не такая - надо самому рисовать
Итого - надо убрать

Проверки в расходной нет на режим проведения документа для установки параметра МоментВремени
« Последнее редактирование: Февраль 03, 2016, 05:21:31 pm от Calibrio »

Odin777

  • Пользователь
  • **
  • Сообщений: 12
  • ФИО: Иван
Re: Задача 1.01
« Ответ #503 : Февраль 03, 2016, 10:38:49 pm »
ЗЫ Также мое решение, если есть вопросы и замечания пишите!

Мое мнение:

Шапка в отчетах не такая - надо самому рисовать
Итого - надо убрать

Проверки в расходной нет на режим проведения документа для установки параметра МоментВремени
Не читал пока файл который скачал с сайта 1С под названием "Форма проведения экзамена "1С:Специалист" по платформе "1С:Предприятие 8" и требования к кандидатам". Поэтому пока отвечу так
1) шапка отчета - честно говоря не обратил внимание даже.
2) итого в отчете можно убрать если в СКД на закладке Ресурсы удалить поля
3) Для чего?  Исходя из текста задачи "при проведения Расходной при нехватке товара нужно выдавать сообщение ..... и не позволять проводить документ" я предположил, что мне достаточно получать всегда актуальные записи из регистра Остатки.

Ваш комментарий позволил заглянуть в обработку проведения Расходной и обнаружить ошибку
"МетодСписанияПартий = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(ТекущаяДата()).МетодСписания;"
здесь передается ТекущаяДата() а должна передаваться в качестве параметра Дата документа, т.к. мы можем теоретически добавить документ прошлогодней датой.

Calibrio

  • Новичок
  • *
  • Сообщений: 9
  • я только учусь
Re: Задача 1.01
« Ответ #504 : Февраль 04, 2016, 09:31:34 am »
Почитал тему, многие расхваливают решение sv_mikh, но его решение зачем-то подтерли... очень хотелось увидеть так скажем эталон

2-я задача практически такая же, там решение sv_mikh есть
« Последнее редактирование: Февраль 04, 2016, 12:31:22 pm от Calibrio »

Calibrio

  • Новичок
  • *
  • Сообщений: 9
  • я только учусь
Re: Задача 1.01
« Ответ #505 : Февраль 04, 2016, 12:47:29 pm »
1) шапка отчета - честно говоря не обратил внимание даже.

Ваш комментарий позволил заглянуть в обработку проведения Расходной и обнаружить ошибку
"МетодСписанияПартий = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(ТекущаяДата()).МетодСписания;"
здесь передается ТекущаяДата() а должна передаваться в качестве параметра Дата документа, т.к. мы можем теоретически добавить документ прошлогодней датой.

Вроде на экзамене отчет красивым делать не обязательно, чисто для тренировки макеты порисовать
Я рад, что косвенно помог найти ошибку )

Кстати Док-т УсановкаУчетнойПолитики лишний, все ведь прекрасно делается через сам регистр

Calibrio

  • Новичок
  • *
  • Сообщений: 9
  • я только учусь
Re: Задача 1.01
« Ответ #506 : Февраль 04, 2016, 04:31:41 pm »
Мой вариант решения, все вроде как работает

Odin777

  • Пользователь
  • **
  • Сообщений: 12
  • ФИО: Иван
Re: Задача 1.01
« Ответ #507 : Февраль 04, 2016, 07:55:26 pm »
Мой вариант решения, все вроде как работает
1)В Приходной нет проверки в случае поступления услуг.
2)Нет документа Установка учетной политики. Мне кажется лучше не позволять пользователю напрямую работать с регистром.
3)В обработке проведения документа Расходная посмотрите вам нужно очистить движения документа по регистру Остатки и записать пустой набор, а также очистить движения по регистру Продажи.
   Движения.ОстаткиТоваров.Очистить();
   Движения.ОстаткиТоваров.Записать();
Движения.Продажи.Очистить();

Calibrio

  • Новичок
  • *
  • Сообщений: 9
  • я только учусь
Re: Задача 1.01
« Ответ #508 : Февраль 04, 2016, 09:12:37 pm »
1)В Приходной нет проверки в случае поступления услуг.
2)Нет документа Установка учетной политики. Мне кажется лучше не позволять пользователю напрямую работать с регистром.
3)В обработке проведения документа Расходная посмотрите вам нужно очистить движения документа по регистру Остатки и записать пустой набор, а также очистить движения по регистру Продажи.
   Движения.ОстаткиТоваров.Очистить();
   Движения.ОстаткиТоваров.Записать();
Движения.Продажи.Очистить();

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

Odin777

  • Пользователь
  • **
  • Сообщений: 12
  • ФИО: Иван
Re: Задача 1.01
« Ответ #509 : Февраль 09, 2016, 09:08:21 am »
1)В Приходной нет проверки в случае поступления услуг.
2)Нет документа Установка учетной политики. Мне кажется лучше не позволять пользователю напрямую работать с регистром.
3)В обработке проведения документа Расходная посмотрите вам нужно очистить движения документа по регистру Остатки и записать пустой набор, а также очистить движения по регистру Продажи.
   Движения.ОстаткиТоваров.Очистить();
   Движения.ОстаткиТоваров.Записать();
Движения.Продажи.Очистить();

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