Архив метки: конфигуратор

Как обхитрить документ

Вчера столкнулся с необходимостью программно ввести акт оказания услуг на основании счета-фактуры в стандартной Бухгалтерии для Украины. Сначала было принялся писать обработку заполнения по очереди всех реквизитов, но вспомнил, что в форме документа описана стандартная процедура ВводНаОсновании() и решил использовать ее. В отличии от восьмой версии, в семерке нельзя обратиться к процедурам, описанным в форме документа как к методам объекта, поэтому приходится немного хитрить.

Можно придумать разные варианты, приведу один для примера. Создаю объект “Документ.ОказаниеУслуг”, создаю новый документ, в поле Заказ у вновь созданного объекта ввожу документ, на основании которого будет выполнено заполнение, т.е. ссылку на счет, записываю, чтобы создался объект данных, и теперь даю команду открыть форму этого вновь созданного документа с параметром “Авто”.

2010-09-02_084614

Здесь использована процедура ОткрытьФормуМодально(), чтобы исполнение кода не пошло дальше, а дождалось закрытия открытой формы документа. Теперь в модуль формы документа нужно вставить обработку переданного параметра:

2010-09-02_084948Т.е. вставленная при вызове ОткрытьФормуМодально() переменная или какое-либо значение  теперь доступно в форме документа как Форма.Параметр. Осталось в процедуре ВводНаОсновании() добавить команды записи и закрытия формы:

2010-09-02_085310Они расположены непосредственно перед завершением процедуры. Вот собственно и всё. Аналогичным образом можно организовать программный вызов печати документа.

Как испортить базу данных и потом вернуть ее к жизни

Если вы не спец в работе с базами 1С, то можете при обновлении допустить простую ошибку: вместо того, чтобы запустить процедуру объединения (при которой система анализирует различия в структуре данных), заменяете файл конфигурации новым, просто записывая его поверх старого. Наиболее велик соблазн поступить таким образом в случае с локальной базой в файловом варианте, т.е. когда все данные хранятся в файлах DBF. Вот на таком примере и расскажу, что бывает и как это исправить.

Итак, после замены файла 1cv7.md новым вариантом при запуске 1С:Предприятия видим примерно такое сообщение: “Codebase error, Unrecognised Field Name…”

2010-08-26_102803

И за ним например такое: “Нарушена структура данных таблицы …”

2010-08-26_103233 Читать далее

Конструирование форм в 1С 8.2

Имевшему дело с разработкой форм в старых версиях 1С-ки довольно непросто привыкнуть к новым способам настройки внешнего вида, а особенно способам расположения элементов на форме. Окно редактирования формы теперь выглядит вот так:

2010-06-15_214316

В центре экрана рабочая область разделена на три части – снизу внешний вид формы, вверху слева состав реквизитов, вверху справа источник данных формы, тоже в виде дерева реквизитов. Так вот самое непривычное, это то, что окно с внешним видом формы кроме как для внешнего контроля ни для чего нельзя использовать. Т.е. нельзя “ухватить” реквизит и перетащить в другое место или потянуть за край и сделать длиннее. Теперь все изменения можно настраивать только через дерево элементов формы и окно свойств.

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

Читать далее

Бухучет + зарплата + несколько фирм

Тем, кто ведет учет в стандартной конфигурации “Бухучет для Украины” должна быть известна проблема учета заработной платы по нескольким фирмам, если эти фирмы используют разные системы налогообложения, т.е. кто-то платит налоги на фонд заработной платы, кто-то нет. Проблема в том, что документ “Налисление ЗП”, в котором производятся расчеты начислений, использует один справочник налогов и соответственно одни и те-же ставки. Рассказываю, как решить проблему “по-быстрому”. Понадобится: навыки работы с конфигуратором и с объектами конфигурации, навыки работы с кодом модулей.

Читать далее

Конфигурирование в 1С и антивирус

124754713683AZVV Небольшой недостаток обнаружен в работе 1С:Предприятия 7.7 в системах Windows Vista и Windows 7: во время сохранения изменений в конфигурации происходит задержка около пяти секунд, мелочь, но немного раздражает.

Подозрение сразу падает на антивирус, который пытается проверять все сохраняемые файлы, хотя, тот-же антивирус с той-же семеркой, но в Windows XP никаких подтормаживаний не вызывал. Ставлю в исключения антивируса файлы 1С: *.md, *.dbf, *.cdx, – эфекта нет. Копнул глубже: при сохранении изменений в конфигурации 1С-ка создает копию md-файла во временной папке с именем вида ~md*.tmp, вот эту маску я и добавил к исключениям, результат – сохранение происходит почти мгновенно.

Думаю этот трюк пригодится всем, кто часто вносит изменения в конфигурацию, а кроме программистов это могут быть, например, пользователи распределенных баз.

Вложенный результат запроса

Продолжаю осваивать восьмерку и вот, наконец, подошел вплотную к самой интересной теме — запросы. И сразу споткнулся на тривиальной задаче: сделать выборку из табличной части накладной с отбором по контрагенту, указанному в шапке документа. Без чтения литературы и волшебного форума не получилось. Я ведь мыслил “по-семерочному”, а как оказалось в новых запросах есть интересная фишка: если запрос делается одновременно к шапке и к табличной части документа, то результат обработки табличной части будет выдан в результате запроса как вложенный РезультатЗапроса (это такой тип данных, если кто не в курсе). Пример, имеем такой текст запроса:

zapros-20090416

Теперь для того чтобы перебрать товары нужно выполнить выборку основного запроса, потом в ней выборку вложенного:

zapros2-20090416

Не правда ли, все просто?! Поэтому я решил себе свою собственную коробку 1С-ки прикупить.

Кстати, упомянутый форум чуть было не устроил меня на работу в Петербурге несколько лет назад, там (в Питере) тоже можно купить 1с бухгалтерия 8 дешево. Но тогда еще можно было освоить программирование по форумам, а сейчас — сложновато.

Номер без префикса

До сих пор попадаются клиенты с жалобами на нерабочие регламентированные отчеты с одной ошибкой: “Функция не обнаружена: глНомерБезПрефикса()“. Сама ошибка говорит о том, что новые отчеты запускаются на уже устаревшей версии Бухучета и решения два – либо обновить релиз до последней версии, либо (а если конфигурация дописывалась и переделывалась, то это единственный вариант) добавить в глобальный модуль определение этой функции.
Привожу код:

// ===============================
// Возвращает номер документа без префикса

Функция глНомерБезПрефикса(Знач НомерДок) Экспорт
Если Найти(НомерДок,"-") > 0 Тогда
Возврат Число(Сред(НомерДок,Найти(НомерДок,"-")+1));
Иначе
Возврат Число(НомерДок);
КонецЕсли;
КонецФункции

Вставить можно в любое место модуля.

Запускаем 1cv7.md

После того, как я рассказал про обновление конфигурации, подумалось, что наверное в первую очередь стоило рассказать о том, как ее первоначально “запустить”, т.е. имея только файл 1cv7.md (а по-простому – “мд-шник”) получить рабочую базу.

Читать далее

Как обновить конфигурацию

Вот именно с этого я хотел-бы начать – такой текст обязательно нужно иметь под рукой. Итак, дано: установленная и работающая конфигурация на базе 1С:Предприятия, версии 7.7, ее разработчик или другой программист предлагает ее обновить с помощью нового файла конфигурации 1cv7.md.

Читать далее