1с модуль не скомпилирован

Обновлено: 04.07.2024

Купил 1С где то пол года назад. Все норм работало. С 1 января при загрузке пишет компиляция была выполнена при помощи демонстрационной версии. И потом ошибка Срок работы скомпилированного модуля истек. Что это значит? Контакта продавца уже нету. Вытащил из базы MD. Создаю заного базу. Загружаюсь из этого MD файла и все равно тоже самое. Можно ли это как нибудь убрать?

зайти конфигуратором, если не кзк - то все решаемо
если кзк1 - вроде тоже решаемо :)
история не сильно слезливая

для самоуспокоения в первую очередь надо обозвать продавца пи..сом.. станет полегче, а затем уже можно со свежей головой начать поиск.
что за конфа?

(0) открыть конфигурацию и глядеть там, DLL нет дополнительных?

Я бы посмотрел что ПриНачалеРаботыСистемы() написано.

(3) "Контакта продавца уже нету" и не было, да кинул он продавца, ему поставили дему, он денег не заплатил, теперь плачется )))

Слава Альфу!
Слава!

и когда же появится для 8.1 и 8.2 кзк. эх.

(0) "Можно ли это как нибудь убрать?"
Да. Заплатите разработчику и будет вам счастье.

(16) никогда такого небыло? что снала аванс, а потом под видом того, что "что-то работает не так" зажимают остальное?

аввтора чет не видать))) видимо начал сам разбираться))

(2) "компиляция была выполнена при помощи демонстрационной версии" КЗК видимо демо была. Т.е. это "разработчик" демкой КЗК закрывал ;) ИМХО

жадные 1снеги и не менее жадные заказчики, интересно, кто победит?

Все телепаты :)
(0)Ты хоть подробнее напиши кто продал, компанию, имя в студию,
. так же опиши - это КЗК или другой шифратор?
. так же не стоит под КЗК брать конфу :) . это как кота в мешке :)

(17) Нет. если что то не так работает то либо так оно и есть либо дорабатываем за отдельную плату.

(8) ну, пока доподлинно не известно.. будем исходить, что на п.са нарвались)). а такие же есть.
(18) думаешь, послушался совета в (3)??
(20) мобильное приложение под 1С))
(22) и мню прихвати.

(30). идея нормальна. типо добавить функционал :))))
А ведь реально круто было бы :) Хоть наглеца поймать мона ;)

купил конфигурацию "Страховой брокер". 40 тысяч отдал.

автора (покупателя) явно не предупредили о засаде. автор возможно добросовестный покупатель. интересно мнение Альфа.

(36)Типо у тебя нет соображений, почему закрыли тему в (10) ?
(0)Если прогу покупали, то вам в суд и наглеца за ноздри :)
Если не покупали. то халява на КЗК только в мышеловке ;)

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

А где то очень далеко в мае 2009 у одного моего бывшего клиента что то подобное высветилось. НИЗЯ ОБИЖАТЬ ПРОГРАММИСТОВ))

вышел на человека который тоже покупал туже конфу, он меня вывел на чела который приехал все поставил взял 40 т. налом и все. проверил на месте все работает. кто ж знал то что кидалово? и что этот кзк все заблокирует с 1 января 2010 года?

(36) тогда тебе прямая дорога к разработчику КЗК Альфу. Он выслушает твою историю и если поверит то откроет

посмотрел в поиске про кзк. Там вроде создатель то частник. так предусмотрена какая нибудь защита от таких кидалов?

(39) обиженным программистам, после действий аналогично в (0), с ходу можно устроить поход в гарем в качестве евнуха..
(42) и если откроет, грош цена КЗК..

(33) А ты мнения у Калашникова спроси по поводу расстрела детишек из автоматов его имени.

(41) что делать клиентам пострадавшим от таких "программистов"?

(32) Ну посмотри в накладной кто продавец. Невижу проблем. Тут тебе никто помогать нестанет, ибо с вероятностью 99.9% ты прокинул продавца на бабло.
(42) С чего бы это?

(44) Альф вроде как-то заявлял, что если пакет шифровки получен нелегально то он раскодирует модуль. правда это было при первой КЗК

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

(40)а что говорит тот человек который тоже покупал эту программу?

(50)Если продали на КЗК-2, она есть везде и скоро возможно будет больше таких как ты :)

(57)Ну обычно его имя то тоже смотрят :)
Его же как то нашли :)

(60) пришел чувак, ему отвалили 40 тонн просто так. и даже паспорт не посмотрели

(59)Видишь, ли если ты ищешь помощи по взлому, то не тот сайт :)
Альфу коммерчески не выгодно тебе помогать :)

он админом раньше работал где то. а когда приходил к моему знакомому устраиваться то опоздал тот уже нанял сис админа. а у этого кидалова просто спросил типа не поможешь с 1С? Вот и помог, блин, что б ему.

(62) почему просто так. все работало. А разработка с нуля в 1С стоит 110 тысяч

Если полгода все работало, а с нового года стало выдавать "компиляция была выполнена при помощи демонстрационной версии", то кто-то на праздниках заменил precomp.dll на версию от демки КЗК 2.0.

(56) Ну тогда вы видимо покупали на условиях абонплаты. Неплатили абонплату вот и сдох ваш ежик.

глупая ситуация на самом деле. :) Даже и доказать то не могу что купил эту программу

Че то не верю я в такую историю. 40 тыр заплатили непонятно кому. Так не бывает.

(69) правильным пацанам отдай его.. резюме, похоже у вас есть: они не будут доказывать.

(70) он же типа по рекомендации был, а не с улицы. зкомый закомого знакомого знакомый :)

(44) С чего это? Какой гарем?
Ты работаешь полтора месяца, доверяя этому человеку. "Договор конечно оформим, не переживай. Сейчас кризис. Через месяц как деньги появятся все выплачу".
Итог: Окончание проекта. Все закончено на 100%. И тут. "Понимаешь Анатолий. Ну не стоит твоя работа таких денег. Тебе и 30% хватит."
Да виноват сам. Урок.
А в нужный час сканирование ФС и удаление нужных dll. И почему то не страшно мне как то.

(64) Стоп
1. Есть конфигурация
2. У конфигурации есть автор
3. Автор конфигурации = установщик?
Кто автор конфы короче?

+(67) Так что с учетом октябрьской ветки того же автора, история какая-то мутная.


С помощью инструкций препроцессора можно указать где именно будет выполняться код на встроенном языке: на сервере, на клиенте, в вебклиенте и т.д.

Данный кусок кода будет присутствовать в скомпилированном модуле только при выполнении на сервере, в режиме обычного приложения или при подключении через COM (внешнее соединение).

Процесс выполнения кода на встроенном языке 1с:

  1. Обработка исходного кода препроцессором
  2. Компиляция модуля во внутренний байт-код 1С
  3. Исполнение байт-кода на виртуальной машине 1С (интерпретация)

При этом один и тот же модуль может быть скомпилирован как на сервере, так и на клиенте. С помощью инструкций препроцессора можно указать должен ли присутствовать в скомпилированном модуле тот или кусок кода.

Инструкции препроцессора

Возможные варианты инструкций препроцессора:

  • Клиент
  • НаКлиенте
  • НаСервере
  • Сервер
  • ТонкийКлиент
  • ВебКлиент
  • МобильныйАвтономныйСервер
  • МобильноеПриложениеКлиент
  • МобильноеПриложениеСервер
  • МобильныйКлиент
  • ТолстыйКлиентОбычноеПриложение
  • ТолстыйКлиентУправляемоеПриложение
  • ВнешнееСоединение

Инструкции препроцессора и директивы компиляции

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

Сначала выполняются инструкции препроцессора, а уже потом определяются директивы компиляции. Например:

Данный кусок кода будет присутствовать в серверном модуле формы, но не будет скомпилирован. В клиентском модуле формы его даже не будет.

Часто инструкции препроцессора по ошибке называют директивы препроцессора. Но правильно все-таки инструкции препроцессора.

Исполнение процедур и функций

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



Откроется конструктор формы. В нем можно выбрать тип формы, указать имя и синоним:


Добавим в модуль формы код:


Директивы компиляции

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

  • &НаКлиенте
  • &НаСервере
  • &НаСервереБезКонтекста
  • &НаКлиентеНаСервереБезКонтекста

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

Добавим в модуль формы две процедуры:

С помощью директив компиляции вверху процедуры мы указали где они будут скомпилированы. Клиентские процедуры недоступны на сервере. Серверные процедуры можно вызывать с клиента. Если директива компиляции не указана, то по умолчанию используется &НаСервере.

Для переменных модуля тоже можно использовать директивы компиляции:

При этом нужно учитывать, что серверная переменная формы будет инициализироваться при каждом вызове сервера. То есть если мы вызовем с клиента серверную процедуру, в ней изменим серверную переменную, то при следующем серверном вызове значение переменной будет инициализироваться заново, предыдущее значение будет потеряно.

Обработчики событий модуля формы

В модуле формы тоже есть события, для которых можно создавать обработчики:


У обработчиков событий формы нельзя изменить директиву компиляции. Часть из них доступны на клиенте, часть на сервере.

Рассмотрим основные из них:

Для примера добавим в модуль формы 2 обработки событий: ПриСозданииНаСервере и ПередЗакрытием и добавим туда следующий код:


Общий модуль нужен для того, чтобы вынести код процедуры или функции в одно место, откуда в дальнейшем его можно будет вызывать. Например, есть процедура для расчета суммы строки:

Строка . СуммаСтроки = Строка . КоличествоСтроки * Строка . ЦенаСтроки ;

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

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

//обработчик вызываемый при изменении количества в строке табличной части

Вызов общего модуля


В свойствах общего модуля установим флаг Клиент:


В самом модуле добавим следующий код:

В модуле обработки вызовем оба метода общего модуля:

Переменные в общем модуле могут быть только внутри методов. Нельзя создать переменную, доступную во всем модуле или через свойства модуля.

Клиентский общий модуль

Если в свойствах общего модуля установлен только флаг Клиент, то к методам такого модуля можно будет обращаться только на клиенте. Из самого общего модуля можно выполнять вызов экспортных методов модуля приложения.


Серверный общий модуль

Если установлен только флаг Сервер, то к методам такого модуля можно будет обращаться только на сервер.


Вызов сервера

При установленных двух флагах Сервер и Вызов сервера к методам модуля можно обращаться как на клиенте, так и на сервере. Но само выполнение методов будет выполнено на сервере.


Клиент-серверный общий модуль

У такого общего модуля в свойствах нужно установить и флаг Клиент и флаг Сервер.


Чтобы при компиляции такого общего модуля не было ошибок нужно с помощью инструкций препроцессора разделить процедуры на клиентские и серверные:

Вызывать серверные методы общего модуля можно только на сервере:

//чтобы вызвать серверный метод нужно перейти на сервер

Глобальный общий модуль

Если в свойствах модуля поставить флаг Глобальный, то для вызова методов общего модуля не нужно указывать имя общего модуля.


Глобальные общие модули будут скомпилированы при запуске конфигурации.

Привилегированный общий модуль

Общий модуль с таким флагом всегда выполняется без проверки прав доступа. Такой общий модуль может быть только серверным.


Повторное использование возвращаемых значений

Использование данного свойства позволяет сохранять в кеше параметры и результат функций. Работает только для функций в неглобальных общих модулях.

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

Есть два варианта повторного использования возвращаемых значений:

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

  • Если в рабочем процессе сервера 1С не хватает оперативной памяти
  • Рабочий процесс был перезапущен
  • Клиент был переключен на другой рабочий процесс
  • Прошло 20 минут после сохранения или 6 минут после последнего использования
  • Если вызвать метод ОбновитьПовторноИспользуемыеЗначения

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

Для сохранения в кеше и повторного использования можно использовать параметры следующих типов:

Читайте также: