Архив метки: консультация

Отладка кода: НДС в УТП

12971069114KVyP2Необычная проблема недавно попалась в УТП (конфигурация “Управление торговым предприятием” для Украины, платформа 8.2) – при формировании проводок в приходном документе проводка взаиморасчетов с контрагентом выполнялась с зачетом аванса, т.е. как второе событие, а проводка НДС как первое событие. В результате задваивалась сумма на дебете счета 6442, вместо того, чтобы появиться в кредите. Я рассматривал проблему “по-программерски”, изнутри, поэтому какие настройки в самой программе привели к такому положению не знаю, расскажу только, где увидеть причину.

В модуле проведения документа расчеты событий во взаиморасчетах и в учете НДС производятся отдельно и используются разные регистры, поэтому и стала возможной такая проблема. Расчет движений по НДС выполняется в общем модуле “НалоговыйУчет”, если вы ведете обычный учет, без пропорционального распределения, то последовательность в алгоритме расчета приведет вас к процедуре ДвиженияПоРегистрамНалоговогоУчетаУпрощенныйНалоговыйУчет(). Кстати, отслеживать последовательность выполнения команд в модуле очень легко: если запустить из конфигуратора сеанс предприятия в режиме отладки (клавиша F5), то находясь в коде, клавишей F9 можно ставить точки останова – теперь при выполнении модуля в указанной точке программа остановится и можно будет просмотреть содержимое переменных. Если в тексте модуля вызывается какая-либо процедура, клавишей F12 можно перейти к ней и так далее по цепочке.

Читать далее

Как отредактировать документ если этого нельзя делать

2011-06-03_213924Часто в учетных программах требуется разграничение прав пользователей и при этом обычно есть пользователи, которым, например, разрешено вводить новые документы, но запрещено редактировать уже введенные. К примеру, продавцы в отделе продаж оформляют расходные накладные на клиентов в течении рабочего дня, но не могут изменить накладную, которая введена вчера. Такие ограничения в 1С:Предприятии версии 7.7 накладываются программно, т.е. в модулях формы и документа добавляются команды проверки условий и разрешается или нет запись, проведение и т.д. Связано это прежде всего с тем, что на уровне конфигурации, в наборе прав пользователя возможен запрет на доступ к проведенным документам но нельзя наложить такой запрет по условию – только если в документе указан контрагент с каким-то признаком или если документ введен какое-то число дней назад. И так обстоит со всеми остальными ограничениями. Поэтому, когда требуется определить гибкие условия доступа пользователей к объектам программы, приходится всё делать программными обработками при наступлении нужных событий – записи, открытия или проведения документа, элемента справочника, журнала.

Читать далее

Dialmail и SSL

E-mail concept

Сегодня пришлось столкнуться с проблемой отправки писем из 1С с помощью компоненты Dialmail. Одно из преимуществ этой компоненты в том, что она умеет работать с сервером с использованием защищенного протокола SSL, а этого сейчас требуют многие почтовые службы и, в частности, Gmail – там другого способа просто нет. Компонента запускалась на Windows 2003 SP1, 1С 7.7, при попытке отправить сообщение появлялось сообщение об ошибке, в логе записаны подробности: номер ошибки – 10091, содержание — Network subsystem is unavailable.

Читать далее

Из формы на сервер и обратно

naklienteКазалось-бы, простая задача – в строке документа есть несколько реквизитов: Артикул, Вес, Размер, при изменении которых они должны сохраняться в реквизитах справочника, элемент которого выбран в этой-же строке. Т.е. получается, что пользователь не редактирует элемент справочника, а система это делает за него. Всё было-бы просто, если бы речь не шла об 1С версии 8.2, и вот почему – в 8.2 операции записи элементов могут выполняться только на сервере и не могут выполняться в форме, открытой на клиенте.

Читать далее

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

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

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

2010-08-26_102803

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

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

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

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

Читать далее

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

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

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

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

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

Как распечатать документ

Хочу немного прояснить ситуацию по последним нововведениям в системе печати документов конфигурации Простой учет. Надеюсь это как-то разъяснит, что и для чего нужно. Итак, пример: документ Подбор по прайс-листу, он находится в журнале Калькуляции, заставим его делать вывод печатной формы. Этот документ я выбрал как один из тех, который не имеет встроенной в конфигурацию поддержки печати и при нажатии на кнопку печать мы получим вот такое сообщение:

Читать далее

1C + Vista (продолжение)

На этот раз проблема не в самой системе Windows Vista, просто обнаружена была впервые при попытке подключиться с компьютера с Вистой к сетевой базе, работающей под управлением MS SQL Server 2005. При подключении 1С выдает ошибку «требуется MS SQL версии 6 или выше», т.е. сервер версии 2005 не распознается как старшая версия. Исправляется ситуация просто: необходимо заменить оригинальный файл Bkend.dll на такой-же, но исправленный от такой болячки. Файл можно взять на странице Скачать, проверялся на 25-м и 27-м релизах платформы.

Ридер магнитных карт

Хозяйке на заметку — ридер магнитных карт работает с 1С абсолютно так-же как и сканер штрих-кода. Поддерживается тем-же драйвером и для конфигурации, настроенной на работу со сканером ШК «абсолютно прозрачен», т.е. дополнительных манипуляций, кроме настройки работы сканера ШК, не требуется. Есть, конечно, в настройках драйвера, которые делаются в меню 1С Сервис — Параметры, пункт с названием устройства — можно выставить Сканер штрих-кода или Ридер магнитных карт, но на реакции драйвера это никак не отражается, разве что можно программно, при сработке события, узнать это имя.

Так что можно утверждать, что конфигурация Простой учет поддерживает работу с ридерами магнитных карт. О как!

Замечание: в конфигурации «Торговля и склад» ситуация с настройками иная, читайте далее.