Помогите разобраться с обработкой
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 6 из 6
  1. #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 Тогда
    СоздатьСчет = Ложь;
    ПечатьСчет = Ложь;
    СоздатьАкт = Ложь;
    ПечатьАкт = Ложь;
    СоздатьФактуру = Ложь;
    ЭлементыФормы.СоздатьСчет. Доступность = Ложь;
    ЭлементыФормы.ПечатьСчет.Д оступность = Ложь;
    ЭлементыФормы.СоздатьАкт.Д оступность = Ложь;
    ЭлементыФормы.ПечатьАкт.До ступность = Ложь;
    ЭлементыФормы.СоздатьФакт� �ру.Доступность = Ложь;
    ЭлементыФормы.ПечатьФакту� �а.Доступность = Истина;
    КонецЕсли;
    КонецПроцедуры

  2. #2
    Спец PRO +

    Регистрация
    18.07.2018
    Сообщений
    575
    Сказал(а) спасибо
    326
    Поблагодарили 3602 раз(а) в 617 сообщениях

    По умолчанию Re: Помогите разобраться с обработкой

    Может лучше выложить саму обработку? Какие используете конфигурацию и платформу?

  3. #3
    Пришел за помощью

    Регистрация
    31.05.2019
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении

    По умолчанию Re: Помогите разобраться с обработкой

    Да, прошу прощения.
    ССылка на обработку: https://yadi.sk/d/1olsuqM19y0dEg

  4. #4
    Пришел за помощью

    Регистрация
    31.05.2019
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении

    По умолчанию Re: Помогите разобраться с обработкой

    1С:Предприятие 8.2 (8.2.19.83)
    "Управление торговлей", редакция 10.3 (10.3.29.1)

  5. #5
    Пришел за помощью

    Регистрация
    31.05.2019
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении

    По умолчанию Re: Помогите разобраться с обработкой

    Помогите пожалуйста

  6. #6
    Гость форума

    Регистрация
    26.08.2019
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Помогите разобраться с обработкой

    Если структура комментария Вам известна , тогда в запрос добавьте условия типа
    ПОДСТРОКА(.Комментарий,...) ПОДОБНО "..." и т.д.

Похожие темы

  1. Помогите разобраться с ЗУП.
    от Sava001 в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 1
    Последнее сообщение: 25.06.2013, 01:36
  2. Помогите с обработкой
    от kostromin63 в разделе 1С - Предприятие 7.7
    Ответов: 3
    Последнее сообщение: 18.12.2011, 22:57
  3. Помогите разобраться
    от Валерий2515 в разделе Windows 7
    Ответов: 0
    Последнее сообщение: 22.08.2011, 00:16
  4. Помогите разобраться с Hdd
    от Irzhi_del_Ljllespid в разделе Носители информации
    Ответов: 5
    Последнее сообщение: 10.01.2008, 10:52

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •