Не правильно переносит реквизит Номер документа СчетФактураПолученный
В Комплексной автоматизации у документа СчетФактураПолученный реквизит Номер имеет длину 50, а в Бухгалтерии реквизит имеет длину 11. В конвертации данных сопоставлены реквизиты Номер и установлено автоматически приводить значение к длине приемника. В базе источник Номер = 007, а в базе приемник Номер = 00000000007. Причем реквизити Номер виден только через консоль запросов, вот запрос
ВЫБРАТЬ
СчетФактураПолученный.Ссылка КАК Ссылка,
СчетФактураПолученный.Номер КАК Номер,
СчетФактураПолученный.Дата КАК Дата,
СчетФактураПолученный.ДокументыОснования.(
ДокументОснование.Ссылка КАК ДокументОснованиеСсылка
) КАК ДокументыОснования
ИЗ
Документ.СчетФактураПолученный КАК СчетФактураПолученный
НО если открыть в Бухгалтерии документ то реквизит Номер пустой.
Скрин пустого номера прикладываю
ВЫБРАТЬ
СчетФактураПолученный.Ссылка КАК Ссылка,
СчетФактураПолученный.Номер КАК Номер,
СчетФактураПолученный.Дата КАК Дата,
СчетФактураПолученный.ДокументыОснования.(
ДокументОснование.Ссылка КАК ДокументОснованиеСсылка
) КАК ДокументыОснования
ИЗ
Документ.СчетФактураПолученный КАК СчетФактураПолученный
НО если открыть в Бухгалтерии документ то реквизит Номер пустой.
Скрин пустого номера прикладываю
Прикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В базе-источнике ПКС Номер в обработчике ПередВыгрузкой написать скрипт:
В переменную НомерДокумента_11_Знаков присвоить номер документа источника, преобразованный к нужной длине.
Значение = НомерДокументаСДлинной_11_Знаков.
Как преобразовать? Пример функций:
Функция ПолучитьНомерДокументаБП(ВидДока, НомерДока)
Перем Результат;
//Префикс = "БЕЛ";
Префикс = ЛЕВ(НомерДока, 1);
ДлинаНомераБП = Документы[ВидДока].ПустаяСсылка().Метаданные().ДлинаНомера;
НомерБезПреф = ПолучитьНомерБезПрефикса(НомерДока);
Если стрДлина(Префикс + НомерБезПреф) > ДлинаНомераБП Тогда //в ут длинее
Результат = Префикс + Прав(НомерБезПреф, ДлинаНомераБП - стрДлина(Префикс));
Иначе
Результат = Префикс;
Пока стрДлина(Результат + НомерБезПреф) < ДлинаНомераБП Цикл
Результат = Результат +"0";
КонецЦикла;
Результат = Результат + НомерБезПреф;
КонецЕсли;
Возврат Результат;
КонецФункции //ПолучитьНомерДокументаБП
//**************************************************************************
Функция ПолучитьНомерБезПрефикса(Номер) Экспорт
Перем Результат;
Результат = "";
Для й = 1 по стрДлина(Номер) Цикл
Кодик = КодСимвола(Номер, й);
Если Кодик >=48 and Кодик <=57 Then
Результат =Результат + Сред(Номер, й,1);
EndIF;
КонецЦикла;
Возврат Результат;
КонецФункции //ПолучитьНомерБезПрефикса
В переменную НомерДокумента_11_Знаков присвоить номер документа источника, преобразованный к нужной длине.
Значение = НомерДокументаСДлинной_11_Знаков.
Как преобразовать? Пример функций:
Функция ПолучитьНомерДокументаБП(ВидДока, НомерДока)
Перем Результат;
//Префикс = "БЕЛ";
Префикс = ЛЕВ(НомерДока, 1);
ДлинаНомераБП = Документы[ВидДока].ПустаяСсылка().Метаданные().ДлинаНомера;
НомерБезПреф = ПолучитьНомерБезПрефикса(НомерДока);
Если стрДлина(Префикс + НомерБезПреф) > ДлинаНомераБП Тогда //в ут длинее
Результат = Префикс + Прав(НомерБезПреф, ДлинаНомераБП - стрДлина(Префикс));
Иначе
Результат = Префикс;
Пока стрДлина(Результат + НомерБезПреф) < ДлинаНомераБП Цикл
Результат = Результат +"0";
КонецЦикла;
Результат = Результат + НомерБезПреф;
КонецЕсли;
Возврат Результат;
КонецФункции //ПолучитьНомерДокументаБП
//**************************************************************************
Функция ПолучитьНомерБезПрефикса(Номер) Экспорт
Перем Результат;
Результат = "";
Для й = 1 по стрДлина(Номер) Цикл
Кодик = КодСимвола(Номер, й);
Если Кодик >=48 and Кодик <=57 Then
Результат =Результат + Сред(Номер, й,1);
EndIF;
КонецЦикла;
Возврат Результат;
КонецФункции //ПолучитьНомерБезПрефикса
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот