|
Вопрос по печатной форме. | ☑ | ||
|---|---|---|---|---|
|
0
Diageru
24.05.12
✎
12:22
|
Добрый день. Работаем с 1С:Предприятие 8.2 (8.2.15.301): 1С Розница 1.0 (1.0.15.4) и Бухгалтерия предприятия 2.0 (2.0.35.5).
Возник вопрос: В бухгалтерии при формировании кассовой книге в печатной форме номера документов заполняются без префиксов и нулей, но расходный кассовый ордера попавший по обмену с розници записываются с префиксами и нулями. Просят их убрать. Стоит ли сразу пытаться сделать новую печатную форму или есть опция отключения печати префиксов РКО полученных из розницы. |
|||
|
1
Diageru
25.05.12
✎
12:56
|
Итак, пока ждал ответа решил посмотреть отчёт в конфигураторе. Номер документов там передаётся с помощью:
СтруктураНомерДок = Новый Структура; СтруктураНомерДок.Вставить("Организация",Организация); СтруктураНомерДок.Вставить("Номер",Документ.НомерДок); НомерДокПечатнойФормы = ОбщегоНазначения.ПолучитьНомерНаПечать(СтруктураНомерДок); Смотрю общий модуль ОбщегоНазначения и не могу понять: там стоит удаление префиксов и нулей. Подскажите может можно получить номера документов без префиксов и нулей прямо в отчёте без ссылки на общий модуль. |
|||
|
2
Wobland
25.05.12
✎
12:58
|
(1) общих модулей избегаешь?
|
|||
|
3
ale-sarin
25.05.12
✎
13:26
|
(0) А для чего нужны префиксы, известно Вам?
Надо бороться с такими просьбами. |
|||
|
4
Diageru
25.05.12
✎
14:00
|
Я понимю, что префиксы необходимы чтобы можно было отличить документы с одинаковой нумерацией, но из разных источников. Но в бухгалтерии каждый раз руками префиксы и нули убирают. Потому и просять чтоб в печатной форме не писались.
Общий модуль не избегаю, просто не могу понять здесь вроде стоит удаление префиксов и нулей, почему же рко идут с ними: Функция ПолучитьНомерНаПечать(Документ, МассивПрефиксов = Неопределено) Экспорт Если Документ = Неопределено Тогда Возврат 0; КонецЕсли; Номер = СокрЛП(Документ.Номер); // {ОбменДаннымиБСП // Если номер документа по стандарту БСП 8.2, сформируем номер через стандартную процедуру БСП. Если ПолучитьФункциональнуюОпцию("ИспользоватьОбменДанными") = Истина Тогда Если Сред(Номер, 5, 1) = "-" Тогда Номер = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Номер, Ложь, // УдалитьПрефиксИнформационнойБазы Истина // УдалитьПользовательскийПрефикс ); Возврат Номер; КонецЕсли; КонецЕсли; // }ОбменДаннымиБСП Префикс = ""; Если МассивПрефиксов = Неопределено Тогда Организация = Неопределено; ПодразделениеОрганизации = Неопределено; Если ТипЗнч(Документ) = Тип("ВыборкаИзРезультатаЗапроса") ИЛИ ТипЗнч(Документ) = Тип("Структура") Тогда Организация = Документ.Организация; Иначе МетаданныеДокумента = Документ.Метаданные(); Если ЕстьРеквизитДокумента("Организация", МетаданныеДокумента) Тогда Организация = Документ.Организация; КонецЕсли; КонецЕсли; МассивПрефиксовДляОбхода = СформироватьМассивПрефиксовДляРИБИОрганизации(Организация); Иначе МассивПрефиксовДляОбхода = МассивПрефиксов; КонецЕсли; Для Каждого ТекущийПрефикс ИЗ МассивПрефиксовДляОбхода Цикл // удаление префикса из номера документа Если Найти(Номер, ТекущийПрефикс)=1 Тогда Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1); КонецЕсли; // так же, может остаться "минус" впереди Если Лев(Номер, 1) = "-" Тогда Номер = Сред(Номер, 2); КонецЕсли; // удаление ведущих нулей Пока Лев(Номер, 1)="0" Цикл Номер = Сред(Номер, 2); КонецЦикла; КонецЦикла; Возврат Номер; КонецФункции // ПолучитьНомерНаПечать() |
|||
|
5
ale-sarin
25.05.12
✎
14:21
|
(4) А если в бухгалтерии новая организация добавится? Чего делать будете с нумерацией?
|
|||
|
6
Diageru
25.05.12
✎
16:22
|
Я конечно попытаюсь им это объяснить. Но это другой вопрос.
Создал внешний отчёт и перенёс в него Функцию ПолучитьНомерНаПечать. Функция ПолучитьНомерНаПечать(Документ, МассивПрефиксов = Неопределено) Экспорт Номер = СокрЛП(Документ.Номер); МассивПрефиксов = Новый Массив(); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ Различные | ПрефиксыИнформационныхБаз.Префикс КАК Префикс |ИЗ | РегистрСведений.ПрефиксыИнформационныхБаз КАК ПрефиксыИнформационныхБаз"; ВыборкаУзлов = Запрос.Выполнить().Выбрать(); Пока ВыборкаУзлов.Следующий() Цикл Если Не ПустаяСтрока(ВыборкаУзлов.Префикс) Тогда МассивПрефиксов.Добавить(ВыборкаУзлов.Префикс); КонецЕсли; КонецЦикла; Для Каждого ТекущийПрефикс ИЗ МассивПрефиксов Цикл // удаление префикса из номера документа Если Найти(Номер, ТекущийПрефикс)=1 Тогда Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1); КонецЕсли; // так же, может остаться "минус" впереди Если Лев(Номер, 1) = "-" Тогда Номер = Сред(Номер, 2); КонецЕсли; // удаление ведущих нулей Пока Лев(Номер, 1)="0" Цикл Номер = Сред(Номер, 2); КонецЦикла; КонецЦикла; Возврат Номер; КонецФункции Основная загвостка, как получить ТекущийПрефикс. МассивПрефиксов передаёт только часть префикса - БП - префикс бухгалтерии и игнорирует префиксы P1 и P2. Подскажите, что можно ещё сделать. |
| Форум | Правила | Описание | Секции | Поиск |