В народе есть замечательная крылатая фраза «Сапожник без сапог». Она в полной мере описывает ситуацию, в которой оказываются ИТ-отделы организаций и обслуживающие компании. Люди, которые помогают другим пользователям решать проблемы с техникой, исправлять ошибки в программах, восстанавливать работоспособность программ и оборудования, пытаются навести порядок и привить культуру работы с оборудованием и программным обеспечением, сами не могут навести порядок у себя! О чем пойдет речь? О наболевшем… Учет оборудования и все, что с этим связано. Думаю Вам будет интересно услышать о том, как мы сделали систему учета предназначенную для ИТ-отделов, все таки хабр одно из крупнейших в России IT-сообществ.
Все начиналось в далеком 2009 году. Я занял должность старшего программиста и вместе с начальником отдела, мы начали думать как сделать нашу жизнь лучше. Штат содержал около 10 эникейщиков, 5 программистов и 2 системных администратора, а так же начальника отдела и старшего программиста — Вашего покорного слугу.
Учет оборудования, хотим мы того или нет, является неотделимой частью работы любого ИТ-шника, который связан с железом. Понятное дело, что когда у Вас три компьютера об этом не стоит не то, что говорить, а даже думать, ведь все и так понятно чего и сколько :) Но вот беда, если компьютерный парк начинает расти, а вместе с ним растет и количество ИТ-шников, то в голове удержать информацию становится не реально, да и можешь элементарно не знать о чем то, если это было сделано не тобой. Приведу примеры:
Случай 1. Бухгалтер обращается к начальнику ИТ-отдела.
Бухгалтер. Скажи, пожалуйста, у меня не печатает принтер, не мог бы сказать своим ребятам, что бы они пришли и поменяли картридж?
Начальник ИТ. Сейчас. Повесите на трубке. (голос за кадром: Вова, у нас есть картриджи? ответ за кадром: Не, нету. Закончились… )
Начальник ИТ. Эээ. Марь Ивановна, понимаете, у нас закончились картриджи…
Бухгалтер. А почему не купили раньше, чтобы запас был? Мне первичку печатать надо, клиенты ждут!
Начальник ИТ. Ну…
…
Случай 2. Начальник ИТ-отдела обращается к администратору компьютерных сетей.
Начальник ИТ. Коль, ты забрал у поставщика доп. память, которую обещали поставить зам. директору?
Админ. Нет. Мы ее еще не оплатили…
Начальник ИТ. Как? Я неделю назад ему обещал, что сегодня поставим… Почему не оплатили?
Админ. Эээ. Ну… Я забыл… Работы много, всего не запомнишь…
Начальник ИТ. Хочешь, я тебя с собой сегодня возьму к зам. директору, ты ему об этом расскажешь?
…
Случай 3. Системный администратор обращается к технику компьютерных сетей.
Сисадмин. Слушай, а куда делся системный блок, который с двумя винтами в рэйде? Раньше он стоял у Ивановой.
Техник. Так она уволилась…
Сисадмин. А комп куда делся?
Техник. Я не знаю… Наверное поставили кому-нибудь.
Сисадмин. ?!
…
Знакомы ситуации? Все верно, мы тоже с этим столкнулись. Не мы первые, и я думаю, не мы последние. Все эти случаи, как правило, постоянно портят репутацию ИТ-шникам и не потому, что нам так хочется. Так получается. Мы должны по мановению палочки прилететь и «сделать так, чтобы все работало».
Мы с начальником решили приступить к разработки своей системы, которую можно было бы применять в наших условиях. Организация большая, хотелось видеть решение наших задач, некоторые из которых были достаточно специфическими и не укладывались в рамки существующего программного обеспечения подобной направленности.
В качестве платформы разработки мы выбрали 1С: Предприятие. Стоп, стоп… Предвижу, что после этих слов, начнутся выкрики «православных», по поводу 1С :) Для многих программистов при упоминании 1С: Предприятие, сразу всплывает в памяти самый противный бухгалтер в организации, который всегда чем то не доволен. Попытаюсь объяснить, почему именно 1С.
Можно продолжить, но при выборе мы исходили именно из всего вышеперечисленного.
Итак, система выбрана. Началась разработка. Первым делом, мы решили закрыть дыру под названием «Учет на складе». Т.к. очень часто страдали из-за этого «узкого места».
Прежде всего была проработана техническая часть. Определились в том, как это хотим видеть и выработали методику работы подсистемы складского контура.
Хотелось сделать «идеальную» программу. Чтобы было все просто, но одновременно очень функционально и очень удобно. Ведь нами предполагалось использовать ее в работе.
Для страждущих скриншот конфигурации:
О том, как мы это реализовали контур складского учета я и расскажу в данной статье.
Начнем с главного и основополагающего для склада (места хранения). В нашей конфигурации оборудование «привязывается» к месту хранения, а за этим местом хранения закреплен сотрудник. Т.е. в конфигурации реализована связь:
Есть две схемы именования придуманные нами в контексте нашего решения и наиболее оптимальные с точки зрения простоты и удобства.
1) Обезличенная.
Создаем место хранения buch1 в организационной структуре мест хранения. Для создания структуры можно перетащить место хранения в другое место хранения и оно станет подчиненным. Это удобно если хочется раскидать всех по кабинетам, этажам и т.д.
Т.е. в дереве складов будет что то типа.
При увольнении сотрудника просто меняем ответственного и все. Ничего не перемещаем структура мест хранения не меняется.
2) По сотрудникам.
Т.е. структура будет, примерно такая:
Эта схема удобна тем, что можно не привязывать сотрудников. Из наименования места хранения и так понятно у кого находится оборудование.
Какую схему выберите Вы, это уже Ваш выбор.
Так же поддерживается иерархия мест хранения. Т.е. одно место хранения может содержать несколько других, например:
Так же пришлось решить следующую задачу…
Все мы прекрасно знаем, что компьютерная техника состоит из разных составляющих — комплектующих. Комплекты — это объекты, которые состоят из комплектующих, причем комплекты могут быть как виртуальными (рабочее место, системный блок и т.д.), так и вполне конкретными (серверный шкаф, принтер и т.д.).
Рассмотрим и приведем примеры, как это реализовано в конфигурации.
В нашем решении есть два понятия: номенклатура и карточка номенклатуры. Вы можете спросить: зачем два справочника, если комплектующая у нас одна? Резонный вопрос.
Дело в том, что зачастую мы хотим увидеть где была та или иная номенклатура, где она стояла, ремонтировалась ли, имеет ли инвентарный номер и т.д. Но так же, у нас много однотипной информации: одинаковые принтеры, мониторы, системные блоки, материнские платы. Если все это вести отдельно, в одном справочнике, то через некоторое время мы получим в номенклатуре кашу из одинаковых названий и невозможно будет нормально сориентироваться в этом. Этот этап нами пройден в далеком 2009 году… Тогда мы придумали концепцию, которая актуальна по сегодняшний день.
Было разделено все на 2 справочника: номенклатура и карточки номенклатуры. В номенклатуре содержится модель комплектующей, а в карточке, сама комплектующая с инвентарными номерами, историей и т.д.
Чтобы было понятно приведу пример:
Номенклатура: ВАЗ 2107
Карточка номенклатуры ВАЗ 2107 А123АА 99 RUS
При этом в документах выбирая номенклатуру (определенную модель комплектующей или комплекта), мы выбираем карточку, но выбираем не из всего списка карточек, а с отбором по данной номенклатуре:
Все достаточно просто и не запутано.
Как уже было сказано выше: комплекты — это объекты, которые состоят из комплектующих. В конфигурации с ними работать так же просто. На рисунке, который указан выше комплектом является «Компьютер №256» в нем, содержатся другие комплектующие. Для того, чтобы внести комплектующую в комплект, необходимо мышкой перетащить комплектующую в комплект.
Так же в конфигурации есть возможность не вести учет по карточкам. Это актуально для некоторого вида спец комплектующих и расходных материалов. Например: сетевой кабель, мышки, клавиатуры и т.д. Информация о том где была та или иная мышка, нам зачастую не нужна.
В качестве документов, оприходования товаров, мы реализовали:
Поступление может быть введено как на основании заказа поставщику, так и без него. При этом работает связь, что заказано и что пришло. Т.е. в любой момент можно сказать, что заказали у поставщика, что пришло на склад и чего еще нет. Позволяет контролировать заказы.
При этом в поступлении, как видно из рисунка в спойлере выше, данные по оборудованию фиксируются в наиболее понятном виде. В виде дерева, что во что входит.
Идем дальше… Какая операция следующая по важности? Верно, перемещение с одного места хранения на другое.
Я много думал, как это лучше реализовать, ведь часто бывает, особенно в холдингах проблема с внутренними перемещениями. Что я имею ввиду? Допустим, есть две фирмы, которые входят в холдинг, и Вы работаете ИТ-шником и там и там. Тут вдруг картридж в принтере в одной фирме заканчивается и надо срочно чем то заменить, но в данный момент картриджей в этой фирме нет, есть на остатках в другой фирме. С точки зрения бух учета нельзя из одной фирмы передать картридж в другую, но часто в управленческом учете это правило нарушают. Для этих целей документ «Перемещение» мы немного видоизменили. Авось пригодится и не прогадали.
Ну и куда же без «Списания»? Этот документ позволит списать с остатков оборудование, которое не пригодно для дальнейшего использования.
Собственно, а для чего нам все это вести? Ответ очевиден: мы хотим в любой момент увидеть, что же все таки у нас есть в остатке и оперативно на это отреагировать. Собственно, из-за этого, мы и затеваем весь учет. Сведения об остатках нам предоставит отчет:
Понятно, что такой отчет не один, есть еще, приведем только его.
Не могу не остановиться еще на одном важном моменте, который должен быть обязательно в любой подобной системе — это сборка (комплектация), разбиение комплектации. Т.е. сборка и разборка комплектов.
Так же как и любой другой склад, время от времени необходимо проводить ревизии, или инвентаризацию. Это так же мы предусмотрели. Конфигурация позволяет провести «срез» оборудования на заданную дату и сравнить фактические и учетные остатки оборудования.
Понятное дело, это не все, что я могу рассказать. В рамках данной статьи, я постарался выбрать основные документы и справочники конфигурации, подсистемы «Складской учет». За кадром осталось многое интересное и полезное для ИТ-шников, например:
Подведем итоги. Получилась программа, позволяющая сильно упростить жизнь ИТ-отделу и обслуживающим организациям. Проверено на себе и на сотнях благодарных клиентов, которые у нас появились с 2009 года.
Вот в общем то и все. Постарался раскрыть все возможности конфигурации в части складского контура. Заинтересовали подробности? Добро пожаловать на наш сайт.
PS: Если публикация Вам понравится, я продолжу описание и расскажу о других подсистемах, которые реализованы нами: Service Desk, База знаний, Ремонты, Бюджеты, Денежные средства и т.д.
Все начиналось в далеком 2009 году. Я занял должность старшего программиста и вместе с начальником отдела, мы начали думать как сделать нашу жизнь лучше. Штат содержал около 10 эникейщиков, 5 программистов и 2 системных администратора, а так же начальника отдела и старшего программиста — Вашего покорного слугу.
Учет оборудования, хотим мы того или нет, является неотделимой частью работы любого ИТ-шника, который связан с железом. Понятное дело, что когда у Вас три компьютера об этом не стоит не то, что говорить, а даже думать, ведь все и так понятно чего и сколько :) Но вот беда, если компьютерный парк начинает расти, а вместе с ним растет и количество ИТ-шников, то в голове удержать информацию становится не реально, да и можешь элементарно не знать о чем то, если это было сделано не тобой. Приведу примеры:
Случай 1. Бухгалтер обращается к начальнику ИТ-отдела.
Бухгалтер. Скажи, пожалуйста, у меня не печатает принтер, не мог бы сказать своим ребятам, что бы они пришли и поменяли картридж?
Начальник ИТ. Сейчас. Повесите на трубке. (голос за кадром: Вова, у нас есть картриджи? ответ за кадром: Не, нету. Закончились… )
Начальник ИТ. Эээ. Марь Ивановна, понимаете, у нас закончились картриджи…
Бухгалтер. А почему не купили раньше, чтобы запас был? Мне первичку печатать надо, клиенты ждут!
Начальник ИТ. Ну…
…
Случай 2. Начальник ИТ-отдела обращается к администратору компьютерных сетей.
Начальник ИТ. Коль, ты забрал у поставщика доп. память, которую обещали поставить зам. директору?
Админ. Нет. Мы ее еще не оплатили…
Начальник ИТ. Как? Я неделю назад ему обещал, что сегодня поставим… Почему не оплатили?
Админ. Эээ. Ну… Я забыл… Работы много, всего не запомнишь…
Начальник ИТ. Хочешь, я тебя с собой сегодня возьму к зам. директору, ты ему об этом расскажешь?
…
Случай 3. Системный администратор обращается к технику компьютерных сетей.
Сисадмин. Слушай, а куда делся системный блок, который с двумя винтами в рэйде? Раньше он стоял у Ивановой.
Техник. Так она уволилась…
Сисадмин. А комп куда делся?
Техник. Я не знаю… Наверное поставили кому-нибудь.
Сисадмин. ?!
…
Знакомы ситуации? Все верно, мы тоже с этим столкнулись. Не мы первые, и я думаю, не мы последние. Все эти случаи, как правило, постоянно портят репутацию ИТ-шникам и не потому, что нам так хочется. Так получается. Мы должны по мановению палочки прилететь и «сделать так, чтобы все работало».
Мы с начальником решили приступить к разработки своей системы, которую можно было бы применять в наших условиях. Организация большая, хотелось видеть решение наших задач, некоторые из которых были достаточно специфическими и не укладывались в рамки существующего программного обеспечения подобной направленности.
В качестве платформы разработки мы выбрали 1С: Предприятие. Стоп, стоп… Предвижу, что после этих слов, начнутся выкрики «православных», по поводу 1С :) Для многих программистов при упоминании 1С: Предприятие, сразу всплывает в памяти самый противный бухгалтер в организации, который всегда чем то не доволен. Попытаюсь объяснить, почему именно 1С.
- 1С — это не только бухгалтерия, это прежде всего платформа, которая предназначена для реализации учетно-аналитических задач
- Конфигурации 1С легко модифицируются и позволяют внести изменения в соответствии с Вашими требованиями и пожеланиями. Условно говоря, мне нужна вот такая вот печатная форма, которую подписывает сотрудник после передачи ему оборудования. Как ее получить? Здесь это все решается очень просто. Если Вы знакомы с 1С, то быстро разберетесь, если нет, примеров куча, найдете решение.
- Дополнительный функционал, не предоставляемый 1С, легко реализуется с помощью внешних компонент, которые могут быть написаны на С++ или Delphi. В частности, мы делали вставку скриншотов в 1С в подсистеме Service Desk
- Последние веяния в 1С таковы, что сама система активно развивается в сторону WEB. Т.е. конфигурация может работать через WEB-браузер. Согласитесь, это очень удобно.
- Скорость разработки на порядок выше, чем с использованием других средств разработки ПО. Простыми словами, 1С является «прослойкой» между базой данных и пользователем, которая управляет всем с помощью метаданных и своего встроенного языка.
Можно продолжить, но при выборе мы исходили именно из всего вышеперечисленного.
Реализация проекта
Итак, система выбрана. Началась разработка. Первым делом, мы решили закрыть дыру под названием «Учет на складе». Т.к. очень часто страдали из-за этого «узкого места».
Прежде всего была проработана техническая часть. Определились в том, как это хотим видеть и выработали методику работы подсистемы складского контура.
Хотелось сделать «идеальную» программу. Чтобы было все просто, но одновременно очень функционально и очень удобно. Ведь нами предполагалось использовать ее в работе.
Для страждущих скриншот конфигурации:
О том, как мы это реализовали контур складского учета я и расскажу в данной статье.
Начнем с главного и основополагающего для склада (места хранения). В нашей конфигурации оборудование «привязывается» к месту хранения, а за этим местом хранения закреплен сотрудник. Т.е. в конфигурации реализована связь:
Оборудование <-> Место хранения <-> Сотрудник.
Есть две схемы именования придуманные нами в контексте нашего решения и наиболее оптимальные с точки зрения простоты и удобства.
1) Обезличенная.
Создаем место хранения buch1 в организационной структуре мест хранения. Для создания структуры можно перетащить место хранения в другое место хранения и оно станет подчиненным. Это удобно если хочется раскидать всех по кабинетам, этажам и т.д.
Т.е. в дереве складов будет что то типа.
Организация, ООО
--Бухгалтерия
----buch1
----buch2
При увольнении сотрудника просто меняем ответственного и все. Ничего не перемещаем структура мест хранения не меняется.
2) По сотрудникам.
Т.е. структура будет, примерно такая:
Организация, ООО
--Бухгалтерия
----Иванов Иван Иванович (buch1)
----Петров Петр Петрович (buch2)
Эта схема удобна тем, что можно не привязывать сотрудников. Из наименования места хранения и так понятно у кого находится оборудование.
Какую схему выберите Вы, это уже Ваш выбор.
Так же поддерживается иерархия мест хранения. Т.е. одно место хранения может содержать несколько других, например:
Склад ИТ-отдела
--Полка 1
----Ячейка 1.1
----Ячейка 1.2
--Полка 2
Вот как это выглядит:
Так же пришлось решить следующую задачу…
Все мы прекрасно знаем, что компьютерная техника состоит из разных составляющих — комплектующих. Комплекты — это объекты, которые состоят из комплектующих, причем комплекты могут быть как виртуальными (рабочее место, системный блок и т.д.), так и вполне конкретными (серверный шкаф, принтер и т.д.).
Рассмотрим и приведем примеры, как это реализовано в конфигурации.
В нашем решении есть два понятия: номенклатура и карточка номенклатуры. Вы можете спросить: зачем два справочника, если комплектующая у нас одна? Резонный вопрос.
Дело в том, что зачастую мы хотим увидеть где была та или иная номенклатура, где она стояла, ремонтировалась ли, имеет ли инвентарный номер и т.д. Но так же, у нас много однотипной информации: одинаковые принтеры, мониторы, системные блоки, материнские платы. Если все это вести отдельно, в одном справочнике, то через некоторое время мы получим в номенклатуре кашу из одинаковых названий и невозможно будет нормально сориентироваться в этом. Этот этап нами пройден в далеком 2009 году… Тогда мы придумали концепцию, которая актуальна по сегодняшний день.
Было разделено все на 2 справочника: номенклатура и карточки номенклатуры. В номенклатуре содержится модель комплектующей, а в карточке, сама комплектующая с инвентарными номерами, историей и т.д.
Чтобы было понятно приведу пример:
Номенклатура: ВАЗ 2107
Карточка номенклатуры ВАЗ 2107 А123АА 99 RUS
При этом в документах выбирая номенклатуру (определенную модель комплектующей или комплекта), мы выбираем карточку, но выбираем не из всего списка карточек, а с отбором по данной номенклатуре:
Пример карточки номенклатуры
Все достаточно просто и не запутано.
Как уже было сказано выше: комплекты — это объекты, которые состоят из комплектующих. В конфигурации с ними работать так же просто. На рисунке, который указан выше комплектом является «Компьютер №256» в нем, содержатся другие комплектующие. Для того, чтобы внести комплектующую в комплект, необходимо мышкой перетащить комплектующую в комплект.
Так же в конфигурации есть возможность не вести учет по карточкам. Это актуально для некоторого вида спец комплектующих и расходных материалов. Например: сетевой кабель, мышки, клавиатуры и т.д. Информация о том где была та или иная мышка, нам зачастую не нужна.
Номенклатура и карточка номенклатуры
Так выглядит номенклатура. Для удобства добавлены многие ключевые возможности. Впрочем, лучше увидеть все собственными глазами:
А так выглядит карточка номенклатуры.
Для программного обеспечения и лицензий форма немного другая:
В конфигурации есть возможность контролировать лицензии и ПО по сроку окончания.
А так выглядит карточка номенклатуры.
Для программного обеспечения и лицензий форма немного другая:
В конфигурации есть возможность контролировать лицензии и ПО по сроку окончания.
В качестве документов, оприходования товаров, мы реализовали:
Заказ поставщику <-> Поступление
Поступление может быть введено как на основании заказа поставщику, так и без него. При этом работает связь, что заказано и что пришло. Т.е. в любой момент можно сказать, что заказали у поставщика, что пришло на склад и чего еще нет. Позволяет контролировать заказы.
Заказ поставщику и Поступление
Заказ поставщику. Предназначен для фиксирования намерений приобрести оборудование.
Поступление фиксирует фактический приход оборудования к нам.
А вот сравнение того, что пришло с тем, что было заказано.
Поступление фиксирует фактический приход оборудования к нам.
А вот сравнение того, что пришло с тем, что было заказано.
При этом в поступлении, как видно из рисунка в спойлере выше, данные по оборудованию фиксируются в наиболее понятном виде. В виде дерева, что во что входит.
Идем дальше… Какая операция следующая по важности? Верно, перемещение с одного места хранения на другое.
Я много думал, как это лучше реализовать, ведь часто бывает, особенно в холдингах проблема с внутренними перемещениями. Что я имею ввиду? Допустим, есть две фирмы, которые входят в холдинг, и Вы работаете ИТ-шником и там и там. Тут вдруг картридж в принтере в одной фирме заканчивается и надо срочно чем то заменить, но в данный момент картриджей в этой фирме нет, есть на остатках в другой фирме. С точки зрения бух учета нельзя из одной фирмы передать картридж в другую, но часто в управленческом учете это правило нарушают. Для этих целей документ «Перемещение» мы немного видоизменили. Авось пригодится и не прогадали.
Перемещение
Как видим есть организация прихода и организация расхода. Повторюсь, с точки зрения бухгалтерского учета — это не верно! Но в реальной жизни бывает все…
Как видим есть организация прихода и организация расхода. Повторюсь, с точки зрения бухгалтерского учета — это не верно! Но в реальной жизни бывает все…
Ну и куда же без «Списания»? Этот документ позволит списать с остатков оборудование, которое не пригодно для дальнейшего использования.
Списание
Собственно, а для чего нам все это вести? Ответ очевиден: мы хотим в любой момент увидеть, что же все таки у нас есть в остатке и оперативно на это отреагировать. Собственно, из-за этого, мы и затеваем весь учет. Сведения об остатках нам предоставит отчет:
Остатки на складах/рабочих местах
В отчете можно выбрать вариант, который позволит увидеть не только остатки, но и сформировать ведомость по оборудованию за период и просмотреть, что было на начало периода, что пришло, что переместили или списали, и что на конец периода осталось. Так же отчет содержит множество отборов, которые позволят отфильтровать результаты в отчете. Допустим, выбрать только по месту хранения, или только по сотруднику.
В отчете можно выбрать вариант, который позволит увидеть не только остатки, но и сформировать ведомость по оборудованию за период и просмотреть, что было на начало периода, что пришло, что переместили или списали, и что на конец периода осталось. Так же отчет содержит множество отборов, которые позволят отфильтровать результаты в отчете. Допустим, выбрать только по месту хранения, или только по сотруднику.
Понятно, что такой отчет не один, есть еще, приведем только его.
Не могу не остановиться еще на одном важном моменте, который должен быть обязательно в любой подобной системе — это сборка (комплектация), разбиение комплектации. Т.е. сборка и разборка комплектов.
Сборка (комплектация)
Разбиение аналогично. Только позволяет разбить комплект, на комплектующие.
Разбиение аналогично. Только позволяет разбить комплект, на комплектующие.
Так же как и любой другой склад, время от времени необходимо проводить ревизии, или инвентаризацию. Это так же мы предусмотрели. Конфигурация позволяет провести «срез» оборудования на заданную дату и сравнить фактические и учетные остатки оборудования.
Инвентаризация
Заключение
Понятное дело, это не все, что я могу рассказать. В рамках данной статьи, я постарался выбрать основные документы и справочники конфигурации, подсистемы «Складской учет». За кадром осталось многое интересное и полезное для ИТ-шников, например:
- Объединение комплектующих в один комплект
- Импорт данных из Everest (AIDA 64) и WMI
- Использование дополнительных свойств объектов
- Прикрепление файлов к объектам
- Учет лицензий и программного обеспечения
- Работа с штрих-кодами и печать этикеток для комплектов и комплектующих
- Закрепление сотрудников за местами хранения
- Ведение списка логинов и паролей пользователей для программного обеспечения
- ...
Подведем итоги. Получилась программа, позволяющая сильно упростить жизнь ИТ-отделу и обслуживающим организациям. Проверено на себе и на сотнях благодарных клиентов, которые у нас появились с 2009 года.
Вот в общем то и все. Постарался раскрыть все возможности конфигурации в части складского контура. Заинтересовали подробности? Добро пожаловать на наш сайт.
PS: Если публикация Вам понравится, я продолжу описание и расскажу о других подсистемах, которые реализованы нами: Service Desk, База знаний, Ремонты, Бюджеты, Денежные средства и т.д.