New processing task.
Closed this issue · 5 comments
pozitr0n commented
Client: Kalinkavichy KHP.
Objective: External processing for changing the movement on the registers.
pozitr0n commented
Task
- Add the new measurement "ТипТранспорта" to the register "ЗерновыеДляСушки".
- Create the outside proccessing, which will add the new big data to this register without the re-conduct document.
- Correct the movings ONLY through the document "ПриемнаяКвитанция".
pozitr0n commented
Solving-steps
- Take the movings of the document
- Rewrite the necessary document
- Fill in the data the same other registers
- Record the data
pozitr0n commented
&НаСервере
Процедура ПерезаполнитьНаСервере()
//ТипТранспорта = ВыборТипа;
Если ВыборТипа.Пустая() Тогда
Message("Ошибка!");
Иначе
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
| ЗерновыеДляСушки.Период,
| ЗерновыеДляСушки.Регистратор,
| ЗерновыеДляСушки.Организация,
| ЗерновыеДляСушки.Контрагент,
| ЗерновыеДляСушки.Номенклатура,
| ЗерновыеДляСушки.ХарактеристикаНоменклатуры,
| ЗерновыеДляСушки.Серия,
| ЗерновыеДляСушки.МестоХранения,
| ЗерновыеДляСушки.ТипПоступленияЗерна,
| ЗерновыеДляСушки.ДокументДвижения,
| ЗерновыеДляСушки.Анализ,
| ЗерновыеДляСушки.Количество,
| &ПараметрТипТранспорта КАК ТипТранспорта
|ИЗ
| РегистрНакопления.ЗерновыеДляСушки КАК ЗерновыеДляСушки
|ГДЕ
| ЗерновыеДляСушки.Регистратор ССЫЛКА Документ.ПриемнаяКвитанцияЗерновые
|
|СГРУППИРОВАТЬ ПО
| ЗерновыеДляСушки.Регистратор,
| ЗерновыеДляСушки.Период,
| ЗерновыеДляСушки.Организация,
| ЗерновыеДляСушки.Контрагент,
| ЗерновыеДляСушки.Номенклатура,
| ЗерновыеДляСушки.ХарактеристикаНоменклатуры,
| ЗерновыеДляСушки.Серия,
| ЗерновыеДляСушки.МестоХранения,
| ЗерновыеДляСушки.ТипПоступленияЗерна,
| ЗерновыеДляСушки.ДокументДвижения,
| ЗерновыеДляСушки.Анализ,
| ЗерновыеДляСушки.Количество";
КонецЕсли;
Запрос.УстановитьПараметр("ПараметрТипТранспорта", ВыборТипа);
Выборка = Запрос.Выполнить().Выбрать();
Сообщить(Выборка.Количество());
Пока Выборка.Следующий() Цикл
//если нажать break - прервется не только цикл, но и весь поток кода.
ОбработкаПрерыванияПользователя();
ПровестиПоРегистру(Выборка.Регистратор);
КонецЦикла;
КонецПроцедуры
Процедура ПровестиПоРегистру(ДокСсылка)
НаборЗаписей = РегистрыНакопления.ЗерновыеДляСушки.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокСсылка);
//НаборЗаписей.Записать();
КонецПроцедуры
pozitr0n commented
Changing version.
&НаКлиенте
Процедура ОсновныеДействияФормыПерезаполнить(Кнопка)
ПерезаполнитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПерезаполнитьНаСервере()
//ТипТранспорта = ВыборТипа;
Если ВыборТипа.Пустая() Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ЗерновыеДляСушки.Регистратор
|ИЗ
| РегистрНакопления.ЗерновыеДляСушки КАК ЗерновыеДляСушки
|ГДЕ
| ЗерновыеДляСушки.Регистратор ССЫЛКА Документ.ПриемнаяКвитанцияЗерновые
|
|СГРУППИРОВАТЬ ПО
| ЗерновыеДляСушки.Регистратор";
Выборка = Запрос.Выполнить().Выбрать();
Сообщить(Выборка.Количество());
Пока Выборка.Следующий() Цикл
//если нажать break - прервется не только цикл, но и весь поток кода.
ОбработкаПрерыванияПользователя();
ПровестиПоРегистру(Выборка.Регистратор);
КонецЦикла;
КонецПроцедуры
Процедура ПровестиПоРегистру(ДокСсылка)
НаборЗаписей = РегистрыНакопления.ЗерновыеДляСушки.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокСсылка);
НаборЗаписей.Отбор.Регистратор.Использование = Истина;
НаборЗаписей.Прочитать();
Для Каждого ДокСсылка Из НаборЗаписей Цикл
//НаборЗаписей.Записать();
КонецПроцедуры
pozitr0n commented
Third version
&НаКлиенте
Процедура ОсновныеДействияФормыПерезаполнить(Кнопка)
ПерезаполнитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПерезаполнитьНаСервере()
//ТипТранспорта = ВыборТипа;
Если ВыборТипа.Пустая() Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ЗерновыеДляСушки.Регистратор
|ИЗ
| РегистрНакопления.ЗерновыеДляСушки КАК ЗерновыеДляСушки
|ГДЕ
| ЗерновыеДляСушки.Регистратор ССЫЛКА Документ.ПриемнаяКвитанцияЗерновые
|
|СГРУППИРОВАТЬ ПО
| ЗерновыеДляСушки.Регистратор";
Выборка = Запрос.Выполнить().Выбрать();
Сообщить(Выборка.Количество());
Пока Выборка.Следующий() Цикл
//если нажать break - прервется не только цикл, но и весь поток кода.
ОбработкаПрерыванияПользователя();
ПровестиПоРегистру(Выборка.Регистратор);
КонецЦикла;
КонецПроцедуры
Процедура ПровестиПоРегистру(ДокСсылка)
НаборЗаписей = РегистрыНакопления.ЗерновыеДляСушки.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокСсылка);
НаборЗаписей.Отбор.Регистратор.Использование = Истина;
НаборЗаписей.Прочитать();
Для Каждого Строка Из НаборЗаписей Цикл
Строка.ТипТранспорта = НаборЗаписей.Отбор.Регистратор;
КонецЦикла;
НаборЗаписей.Записать();
КонецПроцедуры