По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А у меня вот что
Если Докум.ДатаДок >= глДатаПостановления451 <<?>>Тогда
{F:\ПРОБНАЯ\DB_TIS\EXTFORMS\PRNFORMS\SF2012.ERT(81)}: Переменная не определена (глДатаПостановления451)
БратьСуммыИзУчета = глБратьСуммыИзУчета<<?>>(Докум.ДатаДок, Докум.ДокОснование.КодОперации);
{F:\ПРОБНАЯ\DB_TIS\EXTFORMS\PRNFORMS\SF2012.ERT(323)}: Функция не обнаружена (глБратьСуммыИзУчета)
БратьСуммыИзУчета = глБратьСуммыИзУчета<<?>>(Докум.ДатаДок);
{F:\ПРОБНАЯ\DB_TIS\EXTFORMS\PRNFORMS\SF2012.ERT(325)}: Функция не обнаружена (глБратьСуммыИзУчета)
Если Докум.ДатаДок >= глДатаПостановления451 <<?>>Тогда
{F:\ПРОБНАЯ\DB_TIS\EXTFORMS\PRNFORMS\SF2012.ERT(81)}: Переменная не определена (глДатаПостановления451)
БратьСуммыИзУчета = глБратьСуммыИзУчета<<?>>(Докум.ДатаДок, Докум.ДокОснование.КодОперации);
{F:\ПРОБНАЯ\DB_TIS\EXTFORMS\PRNFORMS\SF2012.ERT(323)}: Функция не обнаружена (глБратьСуммыИзУчета)
БратьСуммыИзУчета = глБратьСуммыИзУчета<<?>>(Докум.ДатаДок);
{F:\ПРОБНАЯ\DB_TIS\EXTFORMS\PRNFORMS\SF2012.ERT(325)}: Функция не обнаружена (глБратьСуммыИзУчета)
Ошибки типа «Функция не обнаружена (глБратьСуммыИзУчета)»
(при условии, что нужная форма установлена в соответствующую конфигурацию)
возникает, скорее всего, из-за того, что релиз конфигурации старый и в нем не хватает
этих глобальных функций.
Способ решения:
1. обновить релиз до последнего;
2. доделать внешнюю форму под ваш релиз.
(при условии, что нужная форма установлена в соответствующую конфигурацию)
возникает, скорее всего, из-за того, что релиз конфигурации старый и в нем не хватает
этих глобальных функций.
Способ решения:
1. обновить релиз до последнего;
2. доделать внешнюю форму под ваш релиз.
Всё просто - несколькими строками выше есть вот такой код:
РаспредГТД.Страна = СокрЛП(ТекТМЦ.СтранаПроисхождения);
Его нужно переписать:
РаспредГТД.Страна = ТекТМЦ.СтранаПроисхождения;
Тогда в таблицу значений РаспредГТД будет попадать не строка с наименованием страны, а сам элемент справочника. И код будет браться.
А вот строчку, начинающуюся с:
МнЧ.Hоменклатура = ТаблицаОснования.Hоменклатура.ПолнHаименование
нужно, наоборот, переписать в СокрЛП:
МнЧ.Hоменклатура = СокрЛП(ТаблицаОснования.Hоменклатура.ПолнHаименование)
Тогда в таблицу значений будет попадать не бесконечная строка, а только само полное наименование, без пробелов спереди и сзади. Процедура печати существенно ускорится, особенно на длинных СФ. В общем и целом, эту процедуру оптимизировать и оптимизировать...
РаспредГТД.Страна = СокрЛП(ТекТМЦ.СтранаПроисхождения);
Его нужно переписать:
РаспредГТД.Страна = ТекТМЦ.СтранаПроисхождения;
Тогда в таблицу значений РаспредГТД будет попадать не строка с наименованием страны, а сам элемент справочника. И код будет браться.
А вот строчку, начинающуюся с:
МнЧ.Hоменклатура = ТаблицаОснования.Hоменклатура.ПолнHаименование
нужно, наоборот, переписать в СокрЛП:
МнЧ.Hоменклатура = СокрЛП(ТаблицаОснования.Hоменклатура.ПолнHаименование)
Тогда в таблицу значений будет попадать не бесконечная строка, а только само полное наименование, без пробелов спереди и сзади. Процедура печати существенно ускорится, особенно на длинных СФ. В общем и целом, эту процедуру оптимизировать и оптимизировать...
Привожу полный код вместе с добавленными поправками может кому еще пригодится. Не претендую на авторство, просто взял и всё собрал воедино. После этого счет-фактура 2012 не брыкается. Теперь вот думаю как авансовую счет-фактуру замутить.
Если КолСтрокГТД = 0 Тогда
// нет распределения по ГТД
// Заполним номер ГТД и Страну из Номенклатуры, если там есть...
Если ПустоеЗначение(ТекТМЦ.НомерГТД) = 0 Тогда
МнЧ.НомерГТД = СокрЛП(ТекТМЦ.НомерГТД);
КонецЕсли;
Если ПустоеЗначение(ТекТМЦ.СтранаПроисхождения) = 0 Тогда
МнЧ.СтранаН = СокрЛП(ТекТМЦ.СтранаПроисхождения);
МнЧ.СтранаК = СокрЛП(ТекТМЦ.СтранаПроисхождения.Код);
КонецЕсли;
ИначеЕсли КолСтрокГТД = 1 Тогда
РаспредГТД.ПолучитьСтрокуПоНомеру(КолСтрокГТД);
// одна строка в таблице. Товара с номером ГТД и страной в одной строке
МнЧ.НомерГТД = РаспредГТД.Номер;
МнЧ.СтранаН = РаспредГТД.Страна;
МнЧ.СтранаК = РаспредГТД.Страна.Код;
Иначе
РаспредГТД.ВыбратьСтроки();
Пока РаспредГТД.ПолучитьСтроку() = 1 Цикл
МнЧ.НоваяСтрока();
МнЧ.Номенклатура = " в т.ч.";
МнЧ.Цена = КороткийПрочерк;
МнЧ.Сумма = КороткийПрочерк;
МнЧ.СтавкаНДС = КороткийПрочерк;
МнЧ.СуммаНДС = КороткийПрочерк;
МнЧ.СуммаНП = КороткийПрочерк;
МнЧ.ВсегоСНДС = КороткийПрочерк;
МнЧ.Единица = ТекЕдиница;
МнЧ.ЕдиницаКод = ТекЕдиницаКод;
МнЧ.Количество = РаспредГТД.Колво;
МнЧ.НомерГТД = РаспредГТД.Номер;
МнЧ.СтранаН = РаспредГТД.Страна;
Если ПустоеЗначение (РаспредГТД.Страна) = 1 Тогда
МнЧ.СтранаН = " ----- ";
МнЧ.СтранаК = " ----- ";
КонецЕсли;
Если ПустоеЗначение (РаспредГТД.Страна) = 0 Тогда
МнЧ.СтранаН = РаспредГТД.Страна;
МнЧ.СтранаК = РаспредГТД.Страна.Код;
КонецЕсли;
выделено изменения внесенные в код (в первом случае это поправки к коду)
во вотором весь абзац ставится вместо строчки МнЧ.СтранаК = РаспредГТД.Страна.Код; типовой печатной формы от 1С, в данном коде эта строчка уже заменена.
Если КолСтрокГТД = 0 Тогда
// нет распределения по ГТД
// Заполним номер ГТД и Страну из Номенклатуры, если там есть...
Если ПустоеЗначение(ТекТМЦ.НомерГТД) = 0 Тогда
МнЧ.НомерГТД = СокрЛП(ТекТМЦ.НомерГТД);
КонецЕсли;
Если ПустоеЗначение(ТекТМЦ.СтранаПроисхождения) = 0 Тогда
МнЧ.СтранаН = СокрЛП(ТекТМЦ.СтранаПроисхождения);
МнЧ.СтранаК = СокрЛП(ТекТМЦ.СтранаПроисхождения.Код);
КонецЕсли;
ИначеЕсли КолСтрокГТД = 1 Тогда
РаспредГТД.ПолучитьСтрокуПоНомеру(КолСтрокГТД);
// одна строка в таблице. Товара с номером ГТД и страной в одной строке
МнЧ.НомерГТД = РаспредГТД.Номер;
МнЧ.СтранаН = РаспредГТД.Страна;
МнЧ.СтранаК = РаспредГТД.Страна.Код;
Иначе
РаспредГТД.ВыбратьСтроки();
Пока РаспредГТД.ПолучитьСтроку() = 1 Цикл
МнЧ.НоваяСтрока();
МнЧ.Номенклатура = " в т.ч.";
МнЧ.Цена = КороткийПрочерк;
МнЧ.Сумма = КороткийПрочерк;
МнЧ.СтавкаНДС = КороткийПрочерк;
МнЧ.СуммаНДС = КороткийПрочерк;
МнЧ.СуммаНП = КороткийПрочерк;
МнЧ.ВсегоСНДС = КороткийПрочерк;
МнЧ.Единица = ТекЕдиница;
МнЧ.ЕдиницаКод = ТекЕдиницаКод;
МнЧ.Количество = РаспредГТД.Колво;
МнЧ.НомерГТД = РаспредГТД.Номер;
МнЧ.СтранаН = РаспредГТД.Страна;
Если ПустоеЗначение (РаспредГТД.Страна) = 1 Тогда
МнЧ.СтранаН = " ----- ";
МнЧ.СтранаК = " ----- ";
КонецЕсли;
Если ПустоеЗначение (РаспредГТД.Страна) = 0 Тогда
МнЧ.СтранаН = РаспредГТД.Страна;
МнЧ.СтранаК = РаспредГТД.Страна.Код;
КонецЕсли;
выделено изменения внесенные в код (в первом случае это поправки к коду)
во вотором весь абзац ставится вместо строчки МнЧ.СтранаК = РаспредГТД.Страна.Код; типовой печатной формы от 1С, в данном коде эта строчка уже заменена.
Проблема возникает в случае, когда у импортного товара (указана страна происхождения в справочнике номенклатуры) в расходном документе списывается партия, у которой не указан номер ГТД. Проверяется просто: в документе расхода жмем "Действия" - "Отчет о движениях документа", и в разделе списания партий смотрим у какого товара указана страна происхождения и не указана ГТДшка. Щелкаем по этой партии, заполняем ГТД, перепроводим документ расхода, печатаем счет-фактуру.
По поводу необнаруженных функций уже ответили выше.
По поводу необнаруженных функций уже ответили выше.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот