8.х БП Печатная форма кассовой книги

Тема в разделе ""1С:Бухгалтерия БП"", создана пользователем Diageru, 24 май 2012.

  1. TopicStarter Overlay
    Diageru
    Offline

    Diageru

    Регистрация:
    4 май 2012
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Работаем с 1С:Предприятие 8.2 (8.2.15.301): 1С Розница 1.0 (1.0.15.4) и Бухгалтерия предприятия 2.0 (2.0.35.5).
    Возник вопрос: В бухгалтерии при формировании кассовой книги в печатной форме номера документов заполняются без префиксов и нулей, но расходный кассовый ордера попавший по обмену с розници записываются с префиксами и нулями. Просят их убрать. Стоит ли сразу пытаться сделать новую печатную форму или есть опция отключения печати префиксов РКО полученных из розницы?
  2. TopicStarter Overlay
    Diageru
    Offline

    Diageru

    Регистрация:
    4 май 2012
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Итак, пока жду ответа решил посмотреть отчёт в конфигураторе. Номер документов там передаётся с помощью:
    Код:
    СтруктураНомерДок = Новый Структура;
    СтруктураНомерДок.Вставить("Организация",Организация);
    СтруктураНомерДок.Вставить("Номер",Документ.НомерДок); 
    
    НомерДокПечатнойФормы = ОбщегоНазначения.ПолучитьНомерНаПечать(СтруктураНомерДок);
    Смотрю общий модуль ОбщегоНазначения и не могу понять: там стоит удаление префиксов и нулей. Подскажите может можно получить номера документов без префиксов и нулей прямо в отчёте без ссылки на общий модуль.
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    А для чего вам это нужно? Специально эту функцию вынесли в отдельный модуль.
    Как вариант - переписать отчет.
  4. TopicStarter Overlay
    Diageru
    Offline

    Diageru

    Регистрация:
    4 май 2012
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Как я уже говорил, необходимо чтобы в отчёте у документов не писался префикс и нули. Они и не пишутся для всех кроме расходных кассовых ордерах, попавших по обмену из розници. Сейчас есть идея создать новый отчёт и в нём сформировать получение номера и отсечение префиксов и нулей.
  5. TopicStarter Overlay
    Diageru
    Offline

    Diageru

    Регистрация:
    4 май 2012
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Создал внешний отчёт и перенёс в него Функцию ПолучитьНомерНаПечать.
    Код:
    Функция ПолучитьНомерНаПечать(Документ, МассивПрефиксов = Неопределено) Экспорт
    
    Номер   = СокрЛП(Документ.Номер);
    
    МассивПрефиксов = Новый Массив();
    
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ Различные
    |    ПрефиксыИнформационныхБаз.Префикс КАК Префикс
    |ИЗ
    |    РегистрСведений.ПрефиксыИнформационныхБаз КАК ПрефиксыИнформационныхБаз";
    
    ВыборкаУзлов = Запрос.Выполнить().Выбрать();
    Пока ВыборкаУзлов.Следующий() Цикл
    
    Если Не ПустаяСтрока(ВыборкаУзлов.Префикс) Тогда
    
    МассивПрефиксов.Добавить(ВыборкаУзлов.Префикс);
    
    КонецЕсли;
    
    КонецЦикла;
    
    Для Каждого ТекущийПрефикс ИЗ МассивПрефиксов Цикл
    // удаление префикса из номера документа
    Если Найти(Номер, ТекущийПрефикс)=1 Тогда
    Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1);
    КонецЕсли;
    
    // так же, может остаться "минус" впереди
    Если Лев(Номер, 1) = "-" Тогда
    Номер = Сред(Номер, 2);
    КонецЕсли;
    
    // удаление ведущих нулей
    Пока Лев(Номер, 1)="0" Цикл
    Номер = Сред(Номер, 2);
    КонецЦикла;
    КонецЦикла;
    Возврат Номер;
    КонецФункции

    Основная загвостка, как получить ТекущийПрефикс. МассивПрефиксов передаёт только часть префикса - БП - префикс бухгалтерии и игнорирует префиксы P1 и P2. Подскажите, что можно ещё сделать.
  6. TopicStarter Overlay
    Diageru
    Offline

    Diageru

    Регистрация:
    4 май 2012
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Нашёл причину - в регистре сведений не было части префиксов. Вопрос решён.

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