Показано с 1 по 6 из 6
-
06.02.2020, 17:56 #1
- Регистрация
- 31.05.2019
- Сообщений
- 7
- Сказал(а) спасибо
- 0
- Поблагодарили 2 раз(а) в 1 сообщении
Помогите разобраться с обработкой
Всем привет. Есть обработка ввода счета и реализации, на основании старого счета. Отбирает по дате и комментарию. Что нужно изменить, чтобы документы выбирались по коментарию в котором содержится запрос? Допустим у меня в комментарии написаны свои пометки и вид услуги, я хочу выбрать документы по виду услуги, но с сохранением своих пометок. Чтобы комментарий был не равен моему запросу, а содержал его?
Помогите пожалуйста! Вот код:
Перем Комментарий;
Перем Текст;
///////////////////////////////////////////////////
// Обработка документов
///////////////////////////////////////////////////
Процедура КнопкаВыполнитьНажатие(Кн� �пка)
// Подсчитаем сколько документов пойдет в обработку
КоличествоДокументов = 0;
Для Каждого ТекущаяСтрока Из СписокДокументов Цикл
Если ТекущаяСтрока.Обработать Тогда
КоличествоДокументов = КоличествоДокументов +1;
КонецЕсли;
КонецЦикла;
Режим = РежимДиалогаВопрос.ДаНет;
Текст = "Будет обработано " + КоличествоДокументов + " документов. Продолжить?";
Ответ = Вопрос(Текст, Режим, 0, КодВозвратаДиалога.Нет, "Обработать Документы");
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
Текст = "";
Для Каждого ТекущаяСтрока Из СписокДокументов Цикл
//Сообщить (ТекущаяСтрокаДокумент.Док умент.Метаданные().Имя);
Если ТекущаяСтрока.Документ.Мет аданные().Имя = "СчетНаОплатуПокупателю" Тогда
Если (СоздатьСчет Или ПечатьСчет) И ТекущаяСтрока.Обработать Тогда
СоздатьПечатьСчетНаОплату (ТекущаяСтрока);
ИначеЕсли (СоздатьАкт Или ПечатьАкт) И ТекущаяСтрока.Обработать Тогда
СоздатьАктУслуг(ТекущаяСт� �ока.Документ);
КонецЕсли;
КонецЕсли;
Если ТекущаяСтрока.Документ.Мет аданные().Имя = "РеализацияТоваровУслуг" Тогда
Если ПечатьАкт И ТекущаяСтрока.Обработать Тогда
ПечатьАктУслуг(ТекущаяСтр� �ка.Документ);
КонецЕсли;
КонецЕсли;
Если ТекущаяСтрока.Документ.Мет аданные().Имя = "СчетФактураВыданный" Тогда
Если ПечатьФактура И ТекущаяСтрока.Обработать Тогда
ПечатьФактуры(ТекущаяСтро� �а.Документ);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Сообщить("Обработка завершена");
КонецПроцедуры
Процедура СоздатьПечатьСчетНаОплату (ТекущаяСтрокаДокумент)
//Создание счета
Текст = "";
Если СоздатьСчет Тогда
СчетТекущий = ТекущаяСтрокаДокумент.Док� �мент.Ссылка;
СчетНовый = СчетТекущий.Скопировать();
СчетНовый.Дата = ДатаСчета;
СчетНовый.Ответственный = глЗначениеПеременной("глТе кущийПользователь");
Если ИзменитьЦены = Истина Тогда
ТабУслуга = СчетНовый.Услуги;
Если ТабУслуга.Количество() > 0 Тогда
Для Каждого ТекущаяСтрока Из ТабУслуга Цикл
Отбор = Новый Структура("Номенклатура", ТекущаяСтрока.Номенклатур� �);
ЗначРесурсов = РегистрыСведений.ЦеныНоме� �клатуры.ПолучитьПоследнее (ДатаСчета, Отбор);
Если ЗначРесурсов.Цена <> 0 Тогда
ТекущаяСтрока.Цена = ЗначРесурсов.Цена;
ОбработкаТабличныхЧастей.� �ассчитатьСуммуТабЧасти(Те кущаяСтрока, СчетНовый, 1);
ОбработкаТабличныхЧастей.� �ассчитатьСуммуНДСТабЧаст� �(ТекущаяСтрока, СчетНовый);
Иначе
Сообщить("Цены не определены: " + СчетНовый + " # Услуга - " + ТекущаяСтрока.Номенклатур� �);
Сигнал();
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
СчетНовый.Записать();
Текст = "Записан :";
СчетПечать = СчетНовый;
Иначе
СчетПечать = ТекущаяСтрокаДокумент.Док� �мент.ПолучитьОбъект();
КонецЕсли;
// Печать счета
Если (ПечатьСчет = Истина) и (ЭкземпляровСчет > 0) Тогда
Если ПросмотрПечати = Истина Тогда
НаПринтер = Ложь;
Иначе
НаПринтер = Истина;
КонецЕсли;
//МетаданныеОбъекта = СчетПечать.Метаданные();
Если УниверсальныеМеханизмы.На� �ечататьДокументПоУмолчан� �ю(СчетПечать,ЭкземпляровС� �ет, НаПринтер, Истина) Тогда
Текст = ?(Текст = "", "Распечатан: ", "Записан и распечатан: ");
КонецЕсли;
КонецЕсли;
Сообщить (Текст + СчетПечать);
Текст = "";
// Передать в Акт
Если СоздатьАкт Тогда
СоздатьАктУслуг(СчетПечат� �);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьАктУслуг(СчетНаОпл� �ту)
// Создание Акта
АктУслуг = Документы.РеализацияТовар� �вУслуг.СоздатьДокумент();
АктУслуг.Дата = ДатаАкта;
АктУслуг.Заполнить(СчетНаО плату.Ссылка);
АктУслуг.ВидОперации = Перечисления.ВидыОпераций� �еализацияТоваров.ПродажаК омиссия;
АктУслуг.Ответственный = глЗначениеПеременной("глТе кущийПользователь");
АктУслуг.Комментарий = Комментарий;
ТаблУслуга = АктУслуг.Услуги;
АктУслуг.Записать();
Текст = "Записан :";
// Отправляем на печать
ПечатьАктУслуг(АктУслуг);
КонецПроцедуры
Процедура ПечатьАктУслуг(АктУслуг)
// Подготовка документа к печати
Если СоздатьАкт Тогда
АктПечать = АктУслуг;
Иначе
АктПечать = АктУслуг.ПолучитьОбъект();
КонецЕсли;
// Печать Акта
Если (ПечатьАкт = Истина) и (ЭкземпляровАкт > 0) Тогда
Если ПросмотрПечати = Истина Тогда
НаПринтер = Ложь;
Иначе
НаПринтер = Истина;
КонецЕсли;
Если УниверсальныеМеханизмы.На� �ечататьДокументПоУмолчан� �ю(АктПечать, ЭкземпляровАкт, НаПринтер, Истина) Тогда
Текст = ?(Текст = "", "Распечатан: ", "Записан и распечатан: ");
КонецЕсли;
КонецЕсли;
Сообщить (Текст + АктПечать);
Текст = "";
// Передать в Фактуру
Если СоздатьФактуру Или ПечатьФактура Тогда
СоздатьФактуру(АктПечать);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьФактуру(АктУслуг)
// Создать Фактуру
Текст = "";
СчетФактура = Документы.СчетФактураВыда� �ный.СоздатьДокумент();
СчетФактура.Дата = ДатаАкта;
СчетФактура.УстановитьВре� �я(РежимАвтоВремя.Последни� �);
СчетФактура.Заполнить(АктУ слуг.Ссылка);
СчетФактура.Ответственный = глЗначениеПеременной("глТе кущийПользователь");
СчетФактура.Комментарий = Комментарий;
СчетФактура.Записать(Режим ЗаписиДокумента.Проведени� �);
Текст = "Записан :";
// Отправляем на печать
ПечатьФактуры(СчетФактура) ;
КонецПроцедуры
Процедура ПечатьФактуры(СчетФактура)
// Подготовка документа к печати
Если СоздатьФактуру Тогда
ФактураПечать = СчетФактура;
Иначе
ФактураПечать = СчетФактура.ПолучитьОбъек� �();
КонецЕсли;
// Печать Фактуры
Если (ПечатьФактура = Истина) и (ЭкземпляровФактура > 0) Тогда
Если ПросмотрПечати = Истина Тогда
НаПринтер = Ложь;
Иначе
НаПринтер = Истина;
КонецЕсли;
Если УниверсальныеМеханизмы.На� �ечататьДокументПоУмолчан� �ю(ФактураПечать, ЭкземпляровФактура, НаПринтер, Истина) Тогда
Текст = ?(Текст = "", "Распечатан: ", "Записан и распечатан: ");
КонецЕсли;
КонецЕсли;
Сообщить(Текст + ФактураПечать);
Текст = "";
КонецПроцедуры
/////////////////////////////////////////////////////
// Обработка действий формы и элементов
/////////////////////////////////////////////////////
Процедура ПриОткрытии()
// Заполняем начальные значения реквизитов и параметров
НачалоПериода = НачалоМесяца(ДобавитьМеся� �(ТекущаяДата(), -1));
КонецПериода = КонецМесяца(ДобавитьМесяц( ТекущаяДата(), -1));
ДатаСчета = ТекущаяДата();
ДатаАкта = КонецМесяца(ТекущаяДата());
ЭкземпляровСчет = 1;
ЭкземпляровАкт = 2;
ЭкземпляровФактура = 1;
ПросмотрПечати = Ложь;
Комментарий = "";
КомментарийОтбор = Комментарий;
ЭлементыФормы.СоздатьФакт� �ру.Доступность = Ложь;
ЭлементыФормы.ПечатьАкт.До ступность = Ложь;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Ложь;
ЭлементыФормы.ПросмотрПеч� �ти.Доступность = Ложь;
КонецПроцедуры
Процедура ПериодНажатие(Элемент)
// Настроиваем период заполнения документов
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.Установи� �ьПериод(НачалоПериода, ?(КонецПериода='0001-01-01', КонецПериода, КонецДня(КонецПериода)));
НастройкаПериода.Редактир� �ватьКакИнтервал = Истина;
НастройкаПериода.Редактир� �ватьКакПериод = Истина;
НастройкаПериода.ВариантН� �стройки = ВариантНастройкиПериода.П� �риод;
Если НастройкаПериода.Редактир� �вать() Тогда
НачалоПериода = НастройкаПериода.Получить� �атуНачала();
КонецПериода = НастройкаПериода.Получить� �атуОкончания();
КонецЕсли;
КонецПроцедуры
Функция ПроверкаПериода()
Если КонецПериода < НачалоПериода Тогда
Предупреждение("Недопустим ый период!");
Возврат 1;
КонецЕсли;
Возврат 0;
КонецФункции
Процедура ЗаполнитьНажатие(Элемент)
Если ПроверкаПериода() = 1 Тогда
Возврат;
КонецЕсли;
Режим = РежимДиалогаВопрос.ДаНет;
Если СписокДокументов.Количест� �о() > 0 Тогда
Ответ = Вопрос("Список счетов будет очищен. Продолжить?", Режим);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
Иначе
СписокДокументов.Очистить( );
КонецЕсли;
КонецЕсли;
Если Переключатель1 = 0 Тогда
Выборка = Документы.СчетНаОплатуПок� �пателю.Выбрать(НачалоПери� �да, КонецПериода);
КонецЕсли;
Если Переключатель1 = 1 Тогда
Выборка = Документы.РеализацияТовар� �вУслуг.Выбрать(НачалоПери� �да, КонецПериода);
КонецЕсли;
Если Переключатель1 = 2 Тогда
Выборка = Документы.СчетФактураВыда� �ный.Выбрать(НачалоПериода, КонецПериода);
КонецЕсли;
Пока Выборка.Следующий() Цикл
Если Выборка.ПометкаУдаления = Истина Или (Выборка.Комментарий <> КомментарийОтбор И КомментарийОтбор <> "") Тогда
Продолжить;
КонецЕсли;
НовСтрока = СписокДокументов.Добавить( );
НовСтрока.Обработать = 1;
НовСтрока.Документ = Выборка.Ссылка;
НовСтрока.Контрагент = Выборка.Контрагент;
НовСтрока.СуммаПоДокумент� � = Выборка.СуммаДокумента;
НовСтрока.Комментарий = Выборка.Комментарий;
КонецЦикла;
КонецПроцедуры
Процедура ВыбратьВсе(Кнопка)
Для Каждого ТекущаяСтрока Из СписокДокументов Цикл
ТекущаяСтрока.Обработать = Истина;
КонецЦикла;
КонецПроцедуры
Процедура СброситьВсе(Кнопка)
Для Каждого ТекущаяСтрока Из СписокДокументов Цикл
ТекущаяСтрока.Обработать = Ложь;
КонецЦикла;
КонецПроцедуры
Процедура СписокДокументовДокументП риИзменении(Элемент, СтандартнаяОбработка)
ТекущаяСтрока = ЭлементыФормы.СписокДокум� �нтов.ТекущиеДанные;
ТекущийДокумент = ТекущаяСтрока.Документ;
ТекущаяСтрока.Обработать = 1;
ТекущаяСтрока.Контрагент = ТекущийДокумент.Контраген� �;
ТекущаяСтрока.СуммаПоДоку� �енту = ТекущийДокумент.СуммаДоку� �ента;
ТекущаяСтрока.Комментарий = ТекущийДокумент.Комментар� �й;
КонецПроцедуры
Процедура СоздатьСчетПриИзменении(Э� �емент)
Если СоздатьСчет Тогда
Иначе
ЭлементыФормы.ПечатьАкт.До ступность = Ложь;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьАктПриИзменении(Эл� �мент)
Если СоздатьАкт = Истина Тогда
СоздатьФактуру = Истина;
ЭлементыФормы.СоздатьФакт� �ру.Доступность = Истина;
ЭлементыФормы.ПечатьАкт.До ступность = Истина;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Истина;
Иначе
СоздатьФактуру = Ложь;
ПечатьАкт = Ложь;
ПечатьФактура = Ложь;
ЭлементыФормы.СоздатьФакт� �ру.Доступность = Ложь;
ЭлементыФормы.ПечатьАкт.До ступность = Ложь;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьФактуруПриИзменени и(Элемент)
Если СоздатьФактуру Тогда
ЭлементыФормы.ПечатьФакту� �а.Доступность = Истина;
Иначе
ПечатьФактура = Ложь;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура Переключатель1ПриИзменени� �(Элемент)
Если Переключатель1 = 0 Тогда
ПечатьАкт = Ложь;
ПечатьФактура = Ложь;
СоздатьФактуру = Ложь;
ЭлементыФормы.СоздатьСчет. Доступность = Истина;
ЭлементыФормы.ПечатьСчет.Д оступность = Истина;
ЭлементыФормы.СоздатьАкт.Д оступность = Истина;
ЭлементыФормы.ПечатьАкт.До ступность = Ложь;
ЭлементыФормы.СоздатьФакт� �ру.Доступность = Ложь;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Ложь;
КонецЕсли;
Если Переключатель1 = 1 Тогда
СоздатьСчет = Ложь;
ПечатьСчет = Ложь;
СоздатьАкт = Ложь;
ПечатьФактура = Ложь;
ЭлементыФормы.СоздатьСчет. Доступность = Ложь;
ЭлементыФормы.ПечатьСчет.Д оступность = Ложь;
ЭлементыФормы.СоздатьАкт.Д оступность = Ложь;
ЭлементыФормы.ПечатьАкт.До ступность = Истина;
ЭлементыФормы.СоздатьФакт� �ру.Доступность = Истина;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Ложь;
КонецЕсли;
Если Переключатель1 = 2 Тогда
СоздатьСчет = Ложь;
ПечатьСчет = Ложь;
СоздатьАкт = Ложь;
ПечатьАкт = Ложь;
СоздатьФактуру = Ложь;
ЭлементыФормы.СоздатьСчет. Доступность = Ложь;
ЭлементыФормы.ПечатьСчет.Д оступность = Ложь;
ЭлементыФормы.СоздатьАкт.Д оступность = Ложь;
ЭлементыФормы.ПечатьАкт.До ступность = Ложь;
ЭлементыФормы.СоздатьФакт� �ру.Доступность = Ложь;
ЭлементыФормы.ПечатьФакту� �а.Доступность = Истина;
КонецЕсли;
КонецПроцедуры
-
06.02.2020, 18:06 #2
- Регистрация
- 18.07.2018
- Сообщений
- 575
- Сказал(а) спасибо
- 326
- Поблагодарили 3602 раз(а) в 617 сообщениях
Re: Помогите разобраться с обработкой
Может лучше выложить саму обработку? Какие используете конфигурацию и платформу?
-
07.02.2020, 09:27 #3
- Регистрация
- 31.05.2019
- Сообщений
- 7
- Сказал(а) спасибо
- 0
- Поблагодарили 2 раз(а) в 1 сообщении
Re: Помогите разобраться с обработкой
Да, прошу прощения.
ССылка на обработку: https://yadi.sk/d/1olsuqM19y0dEg
-
07.02.2020, 09:30 #4
- Регистрация
- 31.05.2019
- Сообщений
- 7
- Сказал(а) спасибо
- 0
- Поблагодарили 2 раз(а) в 1 сообщении
Re: Помогите разобраться с обработкой
1С:Предприятие 8.2 (8.2.19.83)
"Управление торговлей", редакция 10.3 (10.3.29.1)
-
11.02.2020, 14:52 #5
- Регистрация
- 31.05.2019
- Сообщений
- 7
- Сказал(а) спасибо
- 0
- Поблагодарили 2 раз(а) в 1 сообщении
Re: Помогите разобраться с обработкой
Помогите пожалуйста
-
11.02.2020, 17:47 #6
- Регистрация
- 26.08.2019
- Сообщений
- 1
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Помогите разобраться с обработкой
Если структура комментария Вам известна , тогда в запрос добавьте условия типа
ПОДСТРОКА(.Комментарий,...) ПОДОБНО "..." и т.д.
Похожие темы
-
Помогите разобраться с ЗУП.
от Sava001 в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 1Последнее сообщение: 25.06.2013, 02:36 -
Помогите с обработкой
от kostromin63 в разделе 1С - Предприятие 7.7Ответов: 3Последнее сообщение: 18.12.2011, 23:57 -
Помогите разобраться
от Валерий2515 в разделе Windows 7Ответов: 0Последнее сообщение: 22.08.2011, 01:16 -
Помогите разобраться с Hdd
от Irzhi_del_Ljllespid в разделе Носители информацииОтветов: 5Последнее сообщение: 10.01.2008, 11:52
Социальные закладки