7.7 Множественный отбор в общем журнале

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем DizeL, 26 ноя 2013.

  1. TopicStarter Overlay
    DizeL
    Offline

    DizeL

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Приветствую всех! Есть общий журнал, в нем надобно сделать отбор по ВидуДокумента и по Общему реквизиту "Фирма"

    УстановитьОтбор("Фирма",ВыбФирма);
    УстановитьОтбор("ДокументСправка");

    Но получается: или Вид или Общий реквизит!

    Заранее всем спасибо!
  2. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    нуно ещё один общий реквизит фирма+виддок
    больше никак
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    +Для установки реквизита базу придется перепровести......
    А если написать отчет - не устроит?
  4. TopicStarter Overlay
    DizeL
    Offline

    DizeL

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Отчет не хотят, хотят в журнале создавать, смотреть и т.д. документы

    Добавил "ПриЗпаписи" документа - глУниверсРеквизитыОтбора(Контекст,"ДокСправка")

    Теперь в журнале можно выбирать, но только новые создаваемые документы.

    Думаю как перезаписать существующие документы...
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Обработкой... Механизм в глУниверсРеквизитыОтбора
  6. TopicStarter Overlay
    DizeL
    Offline

    DizeL

    Регистрация:
    13 ноя 2013
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Сделал обработку, проверил все работает:

    Прошу, уважаемый Бухгалтерский угодник , проверьте код на предмет багов ! :)

    Код:
    Процедура Сформировать()			  
    Перем Запрос, ТекстЗапроса;
    Если (Число(НачДата) = 0) ИЛИ (Число(КонДата) = 0) Тогда
    Предупреждение("Не задан период!");
    Возврат;
    КонецЕсли;
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС
    |Период с НачДата по КонДата ;
    |ОбрабатыватьДокументы все;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Без итогов;
    |Док = Документ.ДокСправка.ТекущийДокумент;
    |Фирма = Документ.ДокСправка.Фирма;
    |Группировка Док Без Групп;
    |"//}}ЗАПРОС
    ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    Док=СоздатьОбъект("Документ.ДокСправка");
    Пока Запрос.Группировка() = 1 Цикл
    Если Док.НайтиДокумент(Запрос.Док)=1 Тогда
    // Фирма=Запрос.Фирма;	 
    Док.ДокФирма = ""+"ДокСправка" + ";" + СокрЛП(Док.Фирма.Наименование)+"";
    Док.Записать();
    Сообщить ("Записан документ "+Запрос.Док+", Фирма "+Запрос.Фирма);
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В целом как-то так. Этот код отработает быстрее вашего
    Код:
    Процедура Сформировать()			  
    Перем Запрос, ТекстЗапроса;
    Если (Число(НачДата) = 0) ИЛИ (Число(КонДата) = 0) Тогда
    Предупреждение("Не задан период!");
    Возврат;
    КонецЕсли;
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС
    |Период с НачДата по КонДата ;
    |Без итогов;
    |Док = Документ.ДокСправка.ТекущийДокумент;
    |Группировка Док Без Групп;
    |"//}}ЗАПРОС
    ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    Док=СоздатьОбъект("Документ");
    НачатьТранзакцию();
    Пока Запрос.Группировка() = 1 Цикл
    Если Док.НайтиДокумент(Запрос.Док.ТекущийДокумент())=1 Тогда
    Док.ДокФирма = "ДокСправка;" + СокрЛП(Док.Фирма.Наименование)+"";
    Док.Записать();
    КонецЕсли;
    КонецЦикла;
    ЗафиксироватьТранзакцию();
    КонецПроцедуры

Поделиться этой страницей