Автор Тема: 2.34  (Прочитано 9156 раз)

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

Manticor

  • Пользователь
  • **
  • Сообщений: 25
2.34
« Ответ #15 : Май 23, 2014, 05:49:07 pm »
SanPav, что такое у Вас &ТабСерии - и откуда этот параметр для таблицы передается?

ktibo

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Владимир
2.34
« Ответ #16 : Октябрь 07, 2014, 06:24:34 am »
Думаю, отчет несколько быстрее сделать на основе стандартного отчета "Движения серий товара": в СКД в настройках добавляем поле Документ.Партнер и дату. В конструкторе запроса внутреннее соединение (по ном., хар. и серии) с регистром "Плохие серии", чтобы выводились только они. Ну и в конце левое соединение с остатками на складах. поле с остатками добавить в группировку вместе с НХС.

 Еще мне непонятно, почему в примерах в обработке проведения документа данные из регистра берутся на конкретную дату - дату документа (из-за этого док-т почти всегда можно провести), когда по логике нужно условие (Дата регистра <= Даты документа), т.е. учитывать только те плохие серии, которые были зарегистрированы до даты документа поступления.

 Добавлено (07.10.2014, 06:24)
 ---------------------------------------------

 Разобрался, сам ступил)
« Последнее редактирование: Октябрь 07, 2014, 06:25:15 am от Владимир »


non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Re: 2.34
« Ответ #17 : Ноябрь 10, 2014, 05:59:12 pm »
Для хранения информации о «Плохих сериях» использовал механизм дополнительных реквизитов. Создал дополнительный реквизит серий номенклатуры «Плохие серии» с типом значений «Булево».
 
Для установки признака, скопировал типовую форму списка справочника «Серии номенклатуры», и реализовал заполнение вида номенклатуры из параметров открытия формы.
Добавил команду открытия формы из карточки номенклатуры без доработки формы (установил свойства команды, и она появилась автоматически).

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

Если ПараметрКоманды = Неопределено ИЛИ НЕ ТипЗнч(ПараметрКоманды) = Тип("СправочникСсылка.Номенклатура") Тогда
Возврат;
КонецЕсли;

ПараметрыФормы = Новый Структура("ВидНоменклатуры", ПолучитьЗначнеиеРеквизитаНаСервере(ПараметрКоманды, "ВидНоменклатуры"));
ОткрытьФорму("Справочник.СерииНоменклатуры.Форма.Экзамен_ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);

КонецПроцедуры

&НаСервере
Функция ПолучитьЗначнеиеРеквизитаНаСервере(Объект, ИмяРеквизита)

Возврат Объект[ИмяРеквизита];

КонецФункции // ПолучитьЗначнеиеРеквизитаНаСервере()



Запрет проведения документа «Поступление товаров и услуг» реализовать невозможно, так как при способе учета серий «Управление остатками» (именно он нам нужен для реализации отчета) отражение серий производится на этапе оформления приемки товара на складе, соответственно, реализован запрет проведения документа «ПриходныйОрдерНаТовары», через подписку на событие «ПередЗаписью».

Процедура ПередЗаписью_ПриходныйОрдерНаТовары(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт

Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

ТабличнаяЧастьСерии = Источник.Серии.Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТабличнаяЧастьСерии", ТабличнаяЧастьСерии);
Запрос.Текст =
"ВЫБРАТЬ
| ТабличнаяЧастьСерии.НомерСтроки,
| ТабличнаяЧастьСерии.Количество,
| ТабличнаяЧастьСерии.КоличествоУпаковок,
| ТабличнаяЧастьСерии.Номенклатура,
| ТабличнаяЧастьСерии.Серия КАК СерияНоменклатуры,
| ТабличнаяЧастьСерии.Упаковка,
| ТабличнаяЧастьСерии.Характеристика
|ПОМЕСТИТЬ ВТ_ТабличнаяЧастьСерии
|ИЗ
| &ТабличнаяЧастьСерии КАК ТабличнаяЧастьСерии
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТабличнаяЧастьСерии.Номенклатура,
| ВТ_ТабличнаяЧастьСерии.СерияНоменклатуры,
| ВТ_ТабличнаяЧастьСерии.Характеристика
|ИЗ
| ВТ_ТабличнаяЧастьСерии КАК ВТ_ТабличнаяЧастьСерии
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры.ДополнительныеРеквизиты КАК СерииНоменклатурыДополнительныеРеквизиты
| ПО ВТ_ТабличнаяЧастьСерии.СерияНоменклатуры = СерииНоменклатурыДополнительныеРеквизиты.Ссылка
| И (СерииНоменклатурыДополнительныеРеквизиты.Свойство.Наименование = ""Плохая серия"")
|ГДЕ
| ЕСТЬNULL(СерииНоменклатурыДополнительныеРеквизиты.Значение, ЛОЖЬ) = ИСТИНА";

РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Отказ = Истина;
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

ТекстСообщения = "";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТекстСообщения = ТекстСообщения + ?(ТекстСообщения = "", "", Символы.ПС)
   + "Для номенклатуры: " + ВыборкаДетальныеЗаписи.Номенклатура
   + ?(ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Характеристика), " с х/н: " + ВыборкаДетальныеЗаписи.Характеристика, " ") + Символы.ПС
   + "Установлена ""Плохая серия"": " + ВыборкаДетальныеЗаписи.СерияНоменклатуры;
КонецЦикла;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Сообщить();
КонецЕсли;

КонецПроцедуры



Для вывода информации по операциям с плохими сериями, реализован внешний отчет и размещен в разделы «Запасы и закупки» а так же в разделе «Склад».





Прочитал топ, и понял, что подписку нужно расширить для "ПоступленияТоваровУслуг" и "ОприходованияТоваров".
Ну это не сложно :) главное учесть на экзамене
 

elisey357

  • Новичок
  • *
  • Сообщений: 9
  • ФИО: Елисей
Re: 2.34
« Ответ #18 : Февраль 22, 2015, 09:47:29 am »
Подскажите, в чем может быть проблема?
Делаю эту задачу, завожу регистр сведений, далее подписку и общий модуль
Процедура ПодпискаНаСобытиеСерииПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПлохиеСерииСрезПоследних.Серия,
| ПлохиеСерииСрезПоследних.Номенклатура,
| ПлохиеСерииСрезПоследних.Характеристика
|ИЗ
| РегистрСведений.ПлохиеСерии.СрезПоследних(
| &Дата,
| Серия В (&Серии)
| И Характеристика В (&Характеристика)
| И Номенклатура В (&Номенклатура)) КАК ПлохиеСерииСрезПоследних";
Запрос.УстановитьПараметр("Дата", Источник.Дата);
Запрос.УстановитьПараметр("Серии", Источник.Серии.ВыгрузитьКолонку("Серия"));
Запрос.УстановитьПараметр("Характеристика", Источник.Серии.ВыгрузитьКолонку("Характеристика"));
Запрос.УстановитьПараметр("Номенклатура", Источник.Серии.ВыгрузитьКолонку("Номенклатура"));
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ТекстОшибки = НСтр("ru='В документе есть номенклатура с плохой серией, документ заблокирован: ""%НомерСерии%""'");
ТекстОшибки =  СтрЗаменить(ТекстОшибки, "%НомерСерии%", ВыборкаДетальныеЗаписи.Серия.Номер);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Источник, , , Отказ);
КонецЦикла;
КонецПроцедуры
Затем делаю отчет
ВЫБРАТЬ
ПлохиеСерииСрезПоследних.Номенклатура,
ПлохиеСерииСрезПоследних.Характеристика,
ПлохиеСерииСрезПоследних.Серия
ПОМЕСТИТЬ ПлохиеСерии
ИЗ
РегистрСведений.ПлохиеСерии.СрезПоследних КАК ПлохиеСерииСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДвиженияСерийТоваровОбороты.Номенклатура,
ДвиженияСерийТоваровОбороты.Характеристика,
ДвиженияСерийТоваровОбороты.Серия,
МАКСИМУМ(ДвиженияСерийТоваровОбороты.Период) КАК ДатаПоставки,
ДвиженияСерийТоваровОбороты.СкладскаяОперация,
ДвиженияСерийТоваровОбороты.Документ.Партнер КАК Партнер
ПОМЕСТИТЬ Поставки
ИЗ
РегистрНакопления.ДвиженияСерийТоваров.Обороты(
,
,
Регистратор,
(Номенклатура, Характеристика, Серия) В
(ВЫБРАТЬ
ПлохиеСерии.Номенклатура,
ПлохиеСерии.Характеристика,
ПлохиеСерии.Серия
ИЗ
ПлохиеСерии КАК ПлохиеСерии)) КАК ДвиженияСерийТоваровОбороты


СГРУППИРОВАТЬ ПО
ДвиженияСерийТоваровОбороты.Номенклатура,
ДвиженияСерийТоваровОбороты.Характеристика,
ДвиженияСерийТоваровОбороты.Серия,
ДвиженияСерийТоваровОбороты.СкладскаяОперация,
ДвиженияСерийТоваровОбороты.Документ.Партнер
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.Характеристика,
ТоварыНаСкладахОстатки.Серия,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииНаСкладе
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(
,
(Номенклатура, Характеристика, Серия) В
(ВЫБРАТЬ
ПлохиеСерии.Номенклатура,
ПлохиеСерии.Характеристика,
ПлохиеСерии.Серия
ИЗ
ПлохиеСерии КАК ПлохиеСерии)) КАК ТоварыНаСкладахОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Поставки.ДатаПоставки,
Поставки.Номенклатура,
Поставки.Характеристика,
Поставки.Серия,
Остатки.ВНаличииНаСкладе,
Поставки.СкладскаяОперация,
Поставки.Партнер
ИЗ
Поставки КАК Поставки
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Поставки.Номенклатура = Остатки.Номенклатура
И Поставки.Характеристика = Остатки.Характеристика
И Поставки.Серия = Остатки.Серия
Пытаюсь это запустить, но вылезает ошибка метаданных, обновляю метаданные обработкой разработчика и отчет стал открываться, но вот данных в нем... в чем может быть проблема? Такое и с другими отчетами, которые вначале не открывались, а потом после обновления метаданных пустые... пытаюсь открыть отчеты и других людей, делавших эту задачу

Kashey69

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Kashey69
Re: 2.34
« Ответ #19 : Апрель 15, 2015, 10:04:10 am »
В нескольких решениях упоминается о настройки связи параметров выбора в создаваемом регистре сведений. Скорее всего для измерения серии. Но что конкретно выбирать в поле связи?
Сделал для измерения серии Отбор.ВидНоменклатуры(Номенклатура) Так верно?

7183847

  • Новичок
  • *
  • Сообщений: 8
  • ФИО: Сергей
Re: 2.34
« Ответ #20 : Июнь 10, 2015, 01:36:43 am »

ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: 2.34
« Ответ #21 : Июль 29, 2015, 05:11:52 pm »
Мое решение:

Подписка на событие ОбработкаПроведения для:
- ДокументОбъект.ПриходныйОрдерНаТовары
- ДокументОбъект.ПоступлениеТоваровУслуг

http://www.1c-cod.ru/p/mlc329n67fx2olx

Отчет:



ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: 2.34
« Ответ #22 : Август 21, 2015, 01:56:08 pm »
Сдавал удаленно 12.08.2015, попался билет №9. Сдал, оценка: 3. 

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

Комментарий:
Цитировать
Задача на конфигурирование: задание выполнено некорректно, пользователю предоставляется возможность работы с плохими сериями, после чего выполняется контроль, приводящий к отмене действий   

Получается что блокирование нужно делать и в момент ввода / подбора серий, а не только в момент проведения документа, как  это сделано у меня.
Хотя в задаче об этом не сказано ни слова, а только лишь "В дальнейшем закупка таких серий должна блокироваться системой".
Но с точки зрения удобства пользователя, замечание справедливо.
Поэтому, будьте внимательны. Всем желаю успешной сдачи экзамена.

« Последнее редактирование: Август 22, 2015, 09:09:14 am от ВиталийЧебан »

Qwerty1

  • Пользователь
  • **
  • Сообщений: 45
Re: 2.34
« Ответ #23 : Август 26, 2015, 10:37:52 am »
Добрый день!
Не понятно, нужна ли ордерная схема? Или все таки справочное указание серий подойдет?

ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: 2.34
« Ответ #24 : Август 27, 2015, 09:11:32 pm »
Ордерная схема обязательна, нужны остатки по сериям.
Минимум - Ордерная схема при отражении излишков, недостач и почти. Серии указываются в Поступлении / Реализации товаров.
Другой вариант: также и при поступлении и отгрузке. Серии указываются в ордерах.
Какую бы схему не выбрали, механизм проверки должен работать и для Поступления и для Приходного ордера.

Не забудьте сделать проверку на плохие серии и при указании / подборе серий (помимо обработки проведения), иначе -2 балла гарантировано.
« Последнее редактирование: Август 27, 2015, 09:14:26 pm от ВиталийЧебан »

ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: 2.34
« Ответ #25 : Сентябрь 07, 2015, 10:40:07 am »
Не забудьте сделать проверку на плохие серии и при указании / подборе серий (помимо обработки проведения), иначе -2 балла гарантировано.

Были случаи?

Мой случай, 4 сообщения выше.

ruld

  • Новичок
  • *
  • Сообщений: 4
Re: 2.34
« Ответ #26 : Ноябрь 16, 2015, 05:58:03 pm »
http://www.youtube.com/watch?v=y0bYqScpJ-4

Сдавал удаленно 27.10.2015 с использованием решения из цитаты. Конфигурация версии 11.1.10.176 кажется.

Итог - экзамен не сдан по причине:
Задача на конфигурирование: задание выполнено неверно, невозможно перепровести ранее проведенный документ, неоптимальная учетная схема   
 
« Последнее редактирование: Ноябрь 17, 2015, 12:32:40 pm от ruld »

flex

  • Пользователь
  • **
  • Сообщений: 27
Re: 2.34
« Ответ #27 : Ноябрь 17, 2015, 02:15:31 pm »
Ошибиться в решении не могли? Делал на этой версии, документы перепроводятся.

ruld

  • Новичок
  • *
  • Сообщений: 4
Re: 2.34
« Ответ #28 : Ноябрь 17, 2015, 03:15:46 pm »
Ошибиться в решении не могли? Делал на этой версии, документы перепроводятся.

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

А вот вторая часть про "неоптимальная учетная схема" не понятна...

flex

  • Пользователь
  • **
  • Сообщений: 27
Re: 2.34
« Ответ #29 : Ноябрь 17, 2015, 06:51:22 pm »
Так и я о том же. Документ поступления перепроводится.