|
Ребята помогите с обработкой((( | ☑ | ||
---|---|---|---|---|
0
fanatic1
31.01.14
✎
08:50
|
Есть обработка, которая автоматом закрывает все заказы клиентов 1с УТ11.
Так вот у меня с ней маленькая проблема, перед тем как ставить статус ЗАКРЫТ, мне необходима записать документы, т.к. при закрытии идет проверка,строки должны быть отменены и документ записан(проверка дописывалась) Вот код....Напоминаю, суть в том что просто нужно записать документ.. &НаКлиенте Процедура ПриОткрытии(Отказ) ДатаНачала = Дата(НачалоМесяца(ТекущаяДата())); ДатаОкончания = Дата(КонецМесяца(ТекущаяДата())); КонецПроцедуры &НаКлиенте Процедура ОповеститьПользователяОбУстановкеСтатуса(СписокДокументов, КоличествоОбработанных, КоличествоВсего, Статус) Если КоличествоОбработанных > 0 Тогда //СписокДокументов.Обновить(); ТекстСообщения = НСтр("ru='Для %КоличествоОбработанных% из %КоличествоВсего% выделенных в списке заказов клиентов установлен статус ""%Статус%""'"); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%КоличествоОбработанных%", КоличествоОбработанных); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%КоличествоВсего%", КоличествоВсего); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Статус%", Статус); ТекстЗаголовка = НСтр("ru='Статус ""%Статус%"" установлен'"); ТекстЗаголовка = СтрЗаменить(ТекстЗаголовка, "%Статус%", Статус); ПоказатьОповещениеПользователя(ТекстЗаголовка,, ТекстСообщения, БиблиотекаКартинок.Информация32); Иначе ТекстСообщения = НСтр("ru='Статус ""%Статус%"" не установлен ни для одного заказа клиента.'"); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Статус%", Статус); ТекстЗаголовка = НСтр("ru='Статус ""%Статус%"" не установлен'"); ТекстЗаголовка = СтрЗаменить(ТекстЗаголовка, "%Статус%", Статус); ПоказатьОповещениеПользователя(ТекстЗаголовка,, ТекстСообщения, БиблиотекаКартинок.Информация32); КонецЕсли; КонецПроцедуры &НаСервере Функция ВыполнитьНаСервере() // Выборка = Документы.ЗаказКлиента.Выбрать(НачалоГода(ТекущаяДата()),КонецГода(ТекущаяДата())); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиента.Ссылка |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И ЗаказКлиента.Проведен = ИСТИНА | И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ | И ЗаказКлиента.Статус = &КОтгрузке | |СГРУППИРОВАТЬ ПО | ЗаказКлиента.Ссылка | |УПОРЯДОЧИТЬ ПО | ЗаказКлиента.Дата |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания)); Запрос.УстановитьПараметр("КОтгрузке", Объект.Статус); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); мДокументы = Новый Массив; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл мДокументы.Добавить(ВыборкаДетальныеЗаписи.ССылка); КонецЦикла; Возврат мДокументы; КонецФункции &НаСервере Процедура ЗаписатьНАСервере(Знач ВыделенныеСсылки) Таблица= Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Документ"); Для Каждого текСтрока из ВыделенныеСсылки цикл новСтрока = Таблица.Добавить(); новСтрока.Документ = текСтрока; КонецЦикла; Для Каждого текСтрока из Таблица цикл Сообщить(Объект); Объект = текСтрока.Документ.ПолучитьОбъект(); Объект.Записать(режимЗаписиДокумента.Запись); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ЗакрытьСчета(Команда) ВыделенныеСсылки = ВыполнитьНаСервере(); Если ВыделенныеСсылки.Количество() = 0 Тогда Возврат; КонецЕсли; ТекстВопроса = НСтр("ru='У выделенных в списке заказов будет установлен статус ""Закрыт"". Все неотработанные строки будут отменены. Продолжить?'"); Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ПричинаОтменыЗаказовКлиентов = ПредопределенноеЗначение("Справочник.ПричиныОтменыЗаказовКлиентов.ПустаяСсылка"); ПричинаОтменыЗаказовКлиентов = ОткрытьФормуМодально("Справочник.ПричиныОтменыЗаказовКлиентов.ФормаВыбора", Новый Структура("ТекущаяСтрока",ПричинаОтменыЗаказовКлиентов)); Если Не ЗначениеЗаполнено(ПричинаОтменыЗаказовКлиентов) Тогда Возврат; КонецЕсли; ОчиститьСообщения(); //******************************************* //КоличествоОбработанных = ОбщегоНазначенияУТВызовСервера.УстановитьСтатусДокументов(ВыделенныеСсылки, "КОтгрузке", Новый Структура("ОтменаНеотработанныхСтрок", ПричинаОтменыЗаказовКлиентов)); //ДанныеФормыВЗначение //РеквизитФормыВЗначение // ЗаписатьНАСервере(ВыделенныеСсылки); // Для Каждого Документ из ВыделенныеСсылки цикл // // Объект = Документ.ПолучитьОбъект(); //Сообщить(Объект); //Объект.Записать(режимЗаписиДокумента.Запись); //КонецЦикла; //***************************************** КоличествоОбработанных = ОбщегоНазначенияУТВызовСервера.УстановитьСтатусДокументов(ВыделенныеСсылки, "Закрыт", Новый Структура("ОтменаНеотработанныхСтрок", ПричинаОтменыЗаказовКлиентов)); ОповеститьПользователяОбУстановкеСтатуса(ВыделенныеСсылки, КоличествоОбработанных, ВыделенныеСсылки.Количество(), "Закрыт"); //ВыполнитьНаСервере(); КонецПроцедуры |
|||
1
Мимохожий Однако
31.01.14
✎
08:55
|
Какую ошибку выбрасывает?
|
|||
2
fanatic1
31.01.14
✎
09:01
|
(1) никакую, это обработка работает.... но работает не правильно.......
Она закрывает лишь те заказы которые отгрузились в 100%. А если отгрузили в менее 100% то он не закрывает счет, говорит что нельзя закрыть счет, есть не отгруженные позиции... Точно знаю что нужно сначала записать документ, а потом ставить статус ЗАКРЫТ...Тогда будет работать.. |
|||
3
Wobland
31.01.14
✎
09:02
|
звучит как предложение о подработке
|
|||
4
fanatic1
31.01.14
✎
09:06
|
(3) Подсказать как прописать в этой обработке, сохранение документа, это звучит как подработка???)))
|
|||
5
Wobland
31.01.14
✎
09:11
|
помогите с обработкой, вот код - это звучит как подработка
|
|||
6
Torquader
31.01.14
✎
11:31
|
Нет, ну а что вы хотите - если заказ не отгружен - как он может быть закрыт ?
Или вы просто хотите закрыть всё, не обращая внимания на то, что происходит. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |