Как создать библиотеку в 1с

Обновлено: 05.07.2024

Создание конфигурации "1С библиотека"
Привет всем кто смотрит данную тему может из вас найдётся добрый человек которому не трудно будет.

"Библиотека", проведение книг
Ребята, всем добрый день. Мне очень нужна ваша помощь! Мне необходимо создать конфигурацию.

1С 8.2 Розница - "Текущая цена розницы", "Остаток" в форме элемента "Номенклатура"
Всем добрый день! Нужна помощь. В Форму элемента "Номенклатура" нужно добавить два поля с выводом.

rung15, почему вы решили все построить чисто на справочниках?
Предполагается, что элементы справочника будут хранить редко изменяющуюся информацию)
По вашей структуре ситуация будет совсем иная.
Лучше наличие, экземпляры постройте на регистрах. Каких? - здесь все зависит от вашей фантазии и навыков, можно регистрах накопления, можно регистрах сведений.

Если вы готовы все переделать, можем поговорить на эту тему подробнее

Если нет, то конкретно в вашей ситуации: в форме элемента справочника Студенты на событие элемента формы "id_Экземпляр" - НачалоВыбора() пишем следующий код в модуле формы:

Не забудьте в свойствах элемента формы "id_Экземпляр" включить "Кнопку списка".

Для того, чтобы менялось наличие при выборе id_Экземпляр(хотя это неправильно, совсем, а если человек ошибся, а если изменил значение? кто будет контролировать откат?): на событие элемента формы "id_Экземпляр" ПриИзменении() пишем следующий код:

Про возможные проблемы я вам уже написала выше. Регулировать "Наличие" таким образом я бы вам совсем не советовала. Хотя бы через проведение документа(который надо конечно создать) и движения в регистр накопления(тоже надо создать). Тогда будет понятно - документ проведен - книга ушла, отменили проведение или изменили данные в документе - в регистре накопления информация изменилась. Огромное спасибо за помощь, я зыбыл сказать, что работаю в учебной версии, и только на клиенте, серверной части просто не будет(программа только для библиотекаря и его компьютера), поэтому я просидел над вашим кодом 2 часа, но так и не смог его запустить, а на счёт проведение документа и движения в регистр накопления, идея мне понравилась буду работать в этом направлении. Спасибо за помощь. rung15, у вас обычное видимо приложение, а не управляемое?
Выложите вашу конфигурацию. rung15, выставьте, пожалуйста, режим совместимости 8.3.6 в свойствах Конфигурации и сохраните заново. rung15, интересно вы все делаете: формы везде управляемые, а режим запуска - обычное приложение.
Ну ладно. Вы наверное не в курсе, как описывать события элементов формы: выделяете нужный элемент, правая кнопка мыши - Свойства, внизу - События, напротив нужного нажимаете значок лупы
Это автоматически перенесет вас в модуль формы и создаст заголовок процедуры, вам надо дописать только тело процедуры, вызов функций и т.п.
Вы спрашивали выше про книги: моя первая книга - Пособие разработчика, автор Радченко. Попробуйте почитать, она объемная, но усваивается легко и быстро.
Измененная конфигурация 1Cv8_изм.zip Я запустил вашу конфигурацию и всё равно не могу выбрать экземпляр. rung15, выложите базу) *.dt
И не хандрить) сразу никому ничего не дано Вот, извинюсь, что так долго, маленькая депрессия, тут только 2 записи но я сдал только для проверки.
Вы сами в задании сверху писали про "Наличие" книг, а у вас для книг нигде эти галочки не стоят. Смысл тогда давать выбирать книги, если их сейчас нет?)
И еще: обновляйте конфигурацию при изменении перед отладкой - F7. Я решил последовать вашему совету и читаю вашу книгу, 144 страница остановился, думаю всё сделать через проведение когда пойму как это. (Деревенские вузики тяжело учат, а в книге доступно, там кстати на коде есть небольшая заморочка 143 страница

Этот код нужно 2 раза добавлять на изменение количество и изменение цена, я 2 часа убил почему не работает. (Код срабатывал только когда я менял количество(Количество заполняется первым, а цена второй и поэтому код неработает), я как только не издевался чтобы понять почему, в вузике Учитель помог.) А так в книге всё доступно объясняться даже очень.

Добавлено через 20 минут
Ахаха прочитал далее и увидел приписку "Замечательно. Но теперь хотелось бы и для поля Цена сделать то же самое." Наверное я недоразвитый.


Так в чем вопрос? Где вопрос? Или вы просто успехами делитесь?) 144стр - если речь про Радченко "Пособие разработчика", то. у вас много интересного впереди) Возник вопрос, тот код что вы скинули, я пытался перенести его на новые элементы, но просто не понимаю как он работает, объясните пожалуйста его(Желательно а диалекте обезьяны.) Я тут сброшу файл с вопросами. Вопросы скорее всего по базовым знаниям, если считает глупым отвечать на ним, может подскажете где бы я мог найти ответы на них. (Может даже страничку конкретную в ваших книгах скажете?) Заранее благодарю за потраченное время. (Убил около 6 часов пытась реализовать аналогичный код но не смог.) Вот чего я достиг за 6 часов и более 8 пересозданных конфигураций, я пытался избавиться от поля наличие, потому что решил, что его надо делать через регистры и решил воссоздать тоже самое же только без наличия, не знаю почему, но список выпадает только при нажатии кнопки ф4, а когда нажимаешь на стрелочку ничего не происходит, и троеточие пропало куда-то. не знаю почему, но список выпадает только при нажатии кнопки ф4, а когда нажимаешь на стрелочку ничего не происходит, и троеточие пропало куда-то

Кому я это писала?

Не забудьте в свойствах элемента формы "id_Экземпляр" включить "Кнопку списка".

Кнопка списка и дает эти "три точки", которые у вас пропали. Автоматом у вас это отображаться не будет, потому что тип реквизита "id_Экземпляр" - Строка. Был бы справочник - ничего в свойствах изменять не пришлось бы, и пометки "Авто" хватило бы.

Вот чего я достиг за 6 часов и более 8 пересозданных конфигураций

Начинать сначала можно много раз, но итог будет один и тот же, если не понять, в чем проблема. Может стоит что-то перечитать? Эту тему, книгу, погуглить.

Ответы на вопросы из файла

СтандартнаяОбработка = Ложь; - (Для чего это, как я понял если книга не заполнена чтобы не выполнялась обработка выводящая список экземпляров.)
Отключение стандартной обработки события элемента формы, чтобы сработало наше описание события.
Пример для вашей конфигурации: есть элемент формы, связанный с реквизитом Название_Книги (тип СправочникСсылка.Книги). Стандартная обработка события НачалоВыбора() этого элемента приведет к открытию ФормыВыбора справочника Книги. Если мы хотим передать туда дополнительные параметры, выставить например отбор, открыть другую форму - отключаем стандартную обработку и пишем то, что хотим сделать по этому событию.

&НаСервереБезКонтекста (Чем отличаеться сервер с контекстом и без, и почему именно такой выбран)
Почитайте про директивы в 1С. Много, но полезно.

Почитайте Работа с конструктором запросов
Конкретно по вашим вопросам: это текст запроса, в котором идет обращение к таблице Справочник.Книги.Экземпляры(табличной части Экземпляры), имя таблицы в запросе можно менять, здесь оно определено как КнигиЭкземпляры. Поэтому все получаемые поля мы определяем как <ИмяТаблицы>.<ИмяПоля>, отсюда
КнигиЭкземпляры.id_Экземпляр. "КнигиЭкземпляры.Ссылка = &Ссылка" - отбор записей в запросе по конкретному элементу справочнику Книги, который мы позже выставляем как параметр - "Запрос.УстановитьПараметр("Ссылка", Книга);".

Запрос.УстановитьПараметр("Ссылка", Книга); (Для чего нужен параметр)
Чтобы в выборку запроса не попали данные по всем книгам, а только по одной заданной.

Книги_Студентаid_ЭкземплярПриИзмененииНаСервере(ТекущаяСтрок а.Название_Книги, ТекущаяСтрока.id_Экземпляр); (Это типа пересылка на процедуру ниже)
Это вопрос или утверждение? Типа да)

НайдСтрока = ТекущаяКнига.Экземпляры.НайтиСтроки(Новый Структура("id_Экземпляр", id_Экземпляр)); (Тут вообще не понимаю ничего, и для чего нам нужна структура особенно)
Умеете пользоваться синтакс-помощником? Вызов ctrl+f1, если выставите в это время курсор на чем-то непонятном - он еще сразу и попытается найти информацию об этом, с описанием и примерами.
Описание метода НайтиСтроки(): осуществляет поиск строк табличной части, соответствующих заданному условию поиска.
Условия поиска заданы в скобках в виде структуры, где в начале "id_Экземпляр" - ключ структуры, имя колонки поиска, дальше - значение структуры - id_Экземпляр(без кавычек). Это значение мы передали при вызове процедуры Книги_Студентаid_ЭкземплярПриИзмененииНаСервере(Книга, id_Экземпляр).

Если НайдСтрока.Количество() > 0 Тогда () (Если мы выбираем какую-то строку из экземпляров то делаем её ложной?)
Ложной - это как? В этой строке мы проверяем, нашлись ли строки в табличной части по заданным параметрам поиска, чтобы не было ошибок при попытке получения значения по индексу.

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

Каждая процедура и функция модуля формы, модуля команды и общего модуля управляемого приложения предваряется директивой компиляции, определяющей среду исполнения данной процедуры. Директива предваряется символом "&". Допустимые директивы:

&НаКлиенте (&AtClient) — определяет клиентскую процедуру (функцию);
&НаСервере (&AtServer) — определяет серверную процедуру (функцию);
&НаСервереБезКонтекста (&AtServerNoContext) — определяет серверную процедуру (функцию), исполняемую на сервере вне контекста формы. Переменные не могут быть внеконтекстными. В таких методах недоступен контекст формы (включая данные формы). Допустимыми являются вызовы только других внеконтекстных методов. При вызове этих методов не выполняется передача данных формы на сервер и обратно. Применение внеконтекстных методов позволяет существенно уменьшить объем передаваемых данных при вызове серверной процедуры из среды клиентского приложения;
&НаКлиентеНаСервереБезКонтекста (&AtClientAtServerNoContext) — определяет процедуру (функцию), исполняемую в модуле формы на клиенте и на сервере, не имеющую доступа к контексту формы, данным формы, переменным, но имеющую доступ к процедурам и функциям общих модулей – серверных, не глобальных и серверных и клиентских одновременно. Сама процедура (функция) доступна для клиентский, серверных контекстных и неконтекстных процедур и функций модуля формы. Из серверных внеконтекстных методов формы допускается вызов серверных методов общих модулей;
&НаКлиентеНаСервере (&AtClientAtServer) — определяет процедуру (функцию), исполняемую в модуле команды, выполняемую на клиенте и на сервере, имеющую доступ к процедурам и функциям общих модулей – серверных, не глобальных и серверных и клиентских одновременно, не имеющую доступ к переменным. Сама процедура (функция) доступна для клиентских серверных процедур и функций модуля команды.
Клиентская процедура (функция) исполняется в среде клиентского приложения. В такой процедуре доступен клиентский контекст формы и вызовы любых процедур модуля.

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

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

Отсутствие директивы компиляции перед процедурой (функцией) означает использование директивы по умолчанию. Директивой по умолчанию является &НаСервере. Не допускается использование нескольких директив компиляции перед одной процедурой (функцией). Не допускается наличие одноименных процедур (функций), отличающихся только директивами компиляции.

В модуле управляемой формы допускается использование инструкций препроцессору. Рекомендуется использовать инструкции препроцессора только внутри процедур (функций). Для понимания результата при "пересечении" инструкциями препроцессора границ процедур (функций) следует учитывать, что обработка инструкций препроцессора выполняется до обработки директив компиляции.

В модуле команды предопределенная процедура-обработчик ОбработатьКоманду должна предваряться директивой &НаКлиенте, так как выполнение команды происходит в клиентском приложении.

Модуль формы
В модуле формы доступны директивы компиляции – &НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста.
Модуль команды
В модуле команды доступны директивы компиляции – &НаКлиенте, &НаСервере, &НаКлиентеНаСервере.
Общий модуль
В общем модуле доступны директивы компиляции – &НаКлиенте, &НаСервере.

Выбор технологии

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

Поскольку внешние компоненты OneScript используют типы, определенные в ядре движка, их непосредственное использование для создания COM компоненты затруднительно и наиболее быстрым подходом, является копирование функционала внешней компоненты путем создания промежуточных классов или Ctrl + C , Ctrl + V .

Пример реализации

В качестве примера реализации вышеизложенного подхода, используем компоненту преобразования текста, в формате markdown в текст, в формате html . Исходный код, а также бинарные файлы расположены по нижеследующим ссылкам:

Данная внешняя компонента OneScript реализует нижеследующие функции (в скобках указаны англоязычные наименования функций):

Получить Html Из Markdown(GetHtmlFromMarkdown)

ПолучитьСтрокуИз Markdown ( GetStringFromMarkdown )

В данном случае, мы создадим COM visible сборку, с функциями, имена которых совпадают с англоязычными наименованиями в компоненте OneScript и скопируем туда функционал исходных функций (в данном случае я использовал Ctrl + C , Ctrl + V ).

После компиляции, мы получаем dll , которую можно зарегистрировать как COM объект при помощи regasm и использовать в 1С:Предприятие.

Ниже приведены примеры использования компоненты из среды OneScript и 1С:Предприятие.

1 С : Предприятие

Как можно увидеть, код использования в 1С:Предприятие и OneScript полностью идентичен, за исключением создания объекта, что позволяет без особых трудозатрат переносить код между платформами.

Более сложный случай

К сожалению, не всегда есть возможность одинаковой реализации интерфейса в компоненте OneScript и COM объекте. В качестве примера такой библиотеки, рассмотрим компоненту, которая преобразует текст в формате yaml в дерево соответствий и массивов. Исходный код, а также бинарные файлы расположены по нижеследующим ссылкам:

Данная компонента имеет единственную функцию:

Прочитать Yaml ( ReadYaml )

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

Для реализации функционала библиотеки в среде 1С:Предприятие, создадим COM объект, реализующий необходимые функции:

ReadYamlString – осуществляет преобразование и возвращает дерево объектов как COM объект

GetValueType – возвращает тип объекта. 0 – Соответствие ( Dictionary ), 1 – Массив ( ArrayList ), 2 – Простое значение

GetByIndex – возвращает объект из массива по индексу .

GetByKey – возвращает объект из коллекции типа Соответствие по ключу.

ToArray – преобразует коллекцию соответствие в массив Структур Ключ, Значение

GetKeyByIndex – получает значение ключа по индексу из массива пар Ключ, Значение

GetValueByIndex – получает Объект по индексу из массива пар Ключ, Значение

После компиляции, мы получаем dll , которую можно зарегистрировать как COM объект при помощи regasm и использовать в 1С:Предприятие.

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

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

Теперь, разместив данный модуль в конфигурации и общих модулях web -приложения OneScript , мы получим прикладной код, который можно переносить между платформами OneScript и 1С:Предприятие простым копированием. В случае вышеописанной библиотеки, прикладной код в OneScript и 1С:Предприятие будет выглядеть примерно следующим образом:

Реализована работа с библиотекой MarkdigMarkdownProcessor как с обработкой для использования совместно с каркасной конфигурацией версии 2.0 . Подсистема для сравнения/объединения - БиблиотекаMarkdownПроцессор.

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

Реализована работа с библиотекой YamlDotNet как с обработкой для использования совместно с каркасной конфигурацией версии 2.0 . Подсистема для сравнения/объединения - БиблиотекаYamlПроцессор.

Теперь, работа с библиотекой в OneScript и 1С:Предприятие выглядит примерно следующим образом:

Надеюсь, что все вышеизложенное поможет писать код, который можно без особых усилий переносить между OneScript и 1С:Предприятие .

Есть конфигурация, которая облегчает работу разработчика, избавляя его от таких «тривиальных» работ – это «Библиотека стандартных подсистем» (БСП), которая включает в себя набор универсальных функциональных подсистем и фрагменты раздела «Администрирование», предназначенных для использования в прикладных решениях на платформе «1С:Предприятие». Библиотека не является законченным (с предметной точки зрения) прикладным решением, но при этом подсистемы библиотеки могут использоваться в конфигурации-потребителе как все вместе, так и по отдельности. И для этого в БСП входит специальный помощник внедрения, использование которого помогает существенно сэкономить время при разработке новой конфигурации.

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

Запустим БСП (у нас редакция 2.3, версия 2.3.3.63), перейдем в раздел «Инструменты разработчика» U94; «Первое внедрение БСП»:



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

После выбора всех параметров система проверит, все ли было корректно выбрано и предложит разные варианты отслеживания ошибок (Таблица внедрения подсистем или Отчет по внедрению БСП).

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

Далее рассмотрим на примере, когда с БСП в «1С:Бухгалтерия предприятия» (БП) нужно перенести некую подсистему.

У нас есть две конфигурации: первая (основная) - со всеми подсистемами БСП, вторая (файла) - БП.

Далее порядок действий следующий:

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

2. Вызвать меню Конфигурация - Сравнить, объединить с конфигурацией из файла.

3. Выбрать файл с расширением cf конфигурации БП.

4. На предложение постановки на поддержку ответить Да.

5. Далее в окне сравнения - снять все флажки (снять флажок с корневого элемента).

6. Выполнить Действия - Отметить по подсистемам.

7. Отметить подсистемы, которые отсутствуют в нашей основной конфигурации – взять из файла, но подсистемы, которых нет в конфигурации из файла, нужно оставить в основной конфигурации (по умолчания так и будет), далее нажать Установить.

8. Отметить к объединению свойства корневого элемента: Основные роли, Модуль управляемого приложения, Модуль сеанса, Модуль внешнего соединения, Модуль обычного приложения, Режим использования модальности, Режим использования синхронных вызовов расширений платформы и внешних компонент, Режим совместимости интерфейса, Режим совместимости. Нажать Выполнить.

9. В окне Настройка правил поддержки - Ок.

10. Обновить конфигурацию базы данных (F7).

11. Далее, скорее всего, появится следующая ошибка:


«… (объект входит в состав одноименного общего реквизита)» или «… : Использование определяемых типов в режиме совместимости Х.Х.Х. (к примеру, автор) и ниже недопустимо» ; «ОбщаяКартинка: Имя не уникально!»

12. Для объекта, который входит в состав одноименного общего реквизита – снять с поддержки, удалить объект и ссылки на него. Выполнить поиск ссылок на удаляемые объекты – удалить ссылки.

13. Поменяйте режим совместимости выше Х.Х.Х.

14. Обновить конфигурацию базы данных (F7). Далее, если возвращаетесь на пункт 11, выполнить пункти 12 и 13, потом 14.

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

Для начала проверяйте общие модули, включены ли подсистемы в командный интерфейс и прочее моменты. Когда все «как бы готово», приступайте к отладке.

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

И так выполняете отладку до тех пор, пока не убедитесь в отсутствии ошибок.

Форум

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

Конфигурация, по-видимому, должна содержать справочник Книги. У каждой книги есть уникальный библиотечный номер (код). Необходимо отметить, что может быть несколько экземпляров одного и того же произведения.

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

  • Выдача книг читателю из библиотеки на определенный срок
  • Продление книги
  • Возврат книги читателем в библиотеку
  • Потеря книги читателем

Для каждого события в конфигурации необходимо предусмотреть соответствующий документ.

Правила работы библиотеки следующие:

  • Читатель может взять в библиотеке только определенное количество книг (задается директором библиотеки).
  • Читатель берет книги обычно на месяц, но может сразу взять книгу на больший срок, если явно скажет об этом.
  • Читатель может продлевать книгу, т.е. сообщать о том, что он вернет ее позже указанного ранее срока.
  • При просрочке возврата книги, читатель получает предупреждение.
  • Когда предупреждений у читателя накапливается больше определенного предела, он лишается правом пользования библиотекой на 1 месяц.
  • При потере книги читатель лишается правом пользования библиотекой на 1 месяц, независимо от количества предупреждений.

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

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

Объекты конфигурации
В конфигурации потребуется создать следующие объекты:

Справочник "Произведения" (форма элемента)

Экранная форма элемента справочника Произведения выглядит следующим образом:

Справочник "Книги" (форма списка)

Экранная форма списка справочника Книги выглядит следующим образом:

Документ "Выдача книги"

Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

СпрКниги.НайтиЭлемент(Книга);
СпрКниги.Статус = Перечисление.СтатусКниги.Выдана;
СпрКниги.Читатель = Читатель;
СпрКниги.ДатаВыдачи = ДатаДок;
СпрКниги.СрокВозврата = СрокВозврата;
СпрКниги.Записать();

Документ "Продление книги"
Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

Если Число(НовыйСрокВозврата)<>0 Тогда

СпрКниги.НайтиЭлемент(Книга);
СпрКниги.СрокВозврата = НовыйСрокВозврата;
СпрКниги.Записать();

Документ "Возврат книги"
Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

СпрКниги.НайтиЭлемент(Книга);

СпрКниги.Статус = Перечисление.СтатусКниги.Свободна;
СпрКниги.Читатель = 0;
СпрКниги.ДатаВыдачи = 0;
СпрКниги.СрокВозврата = 0;
СпрКниги.Записать();

Документ "Потеря книги"
Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

СпрКниги.НайтиЭлемент(Книга);
СпрКниги.Статус = Перечисление.СтатусКниги.Списана;
СпрКниги.Читатель = 0;
СпрКниги.ДатаВыдачи = 0;
СпрКниги.СрокВозврата = 0;
СпрКниги.Записать();

УстановитьРеквизитСправочника(Читатель, "Блокирован", Перечисление.ДаНет.Да, ДатаДок);
УстановитьРеквизитСправочника(Читатель, "Блокирован", Перечисление.ДаНет.Нет, ДатаДок + Константа.КолвоДнейБлокировки);

Отчет "Библиотечная выписка"

Экранная форма диалога отчета выглядит следующим образом:

Пример работы отчета:

Модуль отчета см. в конфигурации "Мини-библиотека".

Отчет "Долги читателя"

Экранная форма диалога отчета выглядит следующим образом:

Пример работы отчета:

Модуль отчета см. в конфигурации "Мини-библиотека".

Дополнительные функции

Вам предлагается самостоятельно реализовать следующие дополнительные функции:

Курс предназначен для базовой подготовки пользователей, осуществляющих администрирование порталов, созданных на коробочной версии сервиса Битрикс24. Изучение курса позволяет освоить основные методы администрирования системы. Если вы хотите ознакомиться с тем как внедрить наш сервис в работу вашей компании, то для вас создан курс Внедрение корпоративного портала.

Курс предусматривает обучение по двум ролям администраторов: Администратор корпоративного портала и Администратор системы.

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

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

При условии качественного изучения материалов курса, по его окончании специалист должен уметь:

  • настраивать модули системы;
  • использовать возможности интерфейса по управлению системой;
  • управлять доступом к системе, сайтами, пользователями, группами пользователей;
  • управлять содержимым портала;
  • работать с инструментами системы;

Начальные требования

Для прохождения курса необходимо:

  • наличие базовых навыков компьютерной грамотности и навыков работы с ОС Windows;
  • наличие представлений о WWW и организации доступа к веб-серверу;
  • базовые навыки установки и администрирования *nix-систем.

Если вам предстоит самостоятельная установка системы, то рекомендуется к изучению курс Установка и настройка.

Администратору системы будет полезно ознакомиться с курсом Разработчик Bitrix Framework, рассказывающем о принципах работы Bitrix Framework.

Примечание. Битрикс24 создан на основе платформы Bitrix Framework, на которой ранее был создан другой продукт "1С-Битрикс: Управление сайтом". В административной части системы сохранена терминология, относящаяся к этому продукту. Поэтому в текущем курсе понятие "сайт" нужно рассматривать как синоним слова "портал".

У нас часто спрашивают, сколько нужно заплатить

Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.

Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.

Баллы опыта

В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:


уроке.

Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.

Тесты и сертификат

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

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 10 дней (70 академических часов).

Если нет интернета

iPhone:
FBReader
CoolReader
iBook
Bookmate

Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome

iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла - от 06.09.2021.

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