Форум программистов, компьютерный форум, киберфорум
algri14
Войти
Регистрация
Восстановить пароль

Символические и жёсткие ссылки в Linux.

Запись от algri14 размещена 15.03.2026 в 20:24
Показов 3718 Комментарии 3

Существует два типа ссылок — символические и жёсткие.

Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link), либо содержать путь к «файлу-ИСТОЧНИКУ», тогда это «символьная ссылка» (symbolic link).
Принципиальное отличие ссылок от копирования файлов заключается в том, что при копировании создается новый inode с дублированием всех данных, что удваивает занимаемое дисковое пространство. Ссылка же не создает копию данных — она лишь предоставляет альтернативный способ доступа к уже существующему файлу.
Применяются для организации работы с одним и тем же файлом или каталогом из нескольких мест операционной системы, чтобы не создавать множество копий и не занимать излишнее дисковое пространство.

Информация на жёстком диске содержится в виде байтов и блоков, их структуру описывают индексные дескрипторы (inode). Операционная система в свою очередь предоставляет "ИНФОРМАЦИЮ" о байтах и блоках в виде файла. Файл — это интерфейс операционной системы, в Linux ВСЁ есть файл, в том числе и ссылки.
При записи "ИНФОРМАЦИИ" на диск, операционная система присваивает ей "inode" и "НАЗВАНИЕ" выбранное пользователем, это и есть "файл-ИСТОЧНИК".

Операционная система с помощью «файла-ИСТОЧНИКА» указывает и предоставляет пользователю «ИНФОРМАЦИЮ» записанную на жёсткий диск, он является первоисточником и одновременно самой первой жёсткой ссылкой-указателем.

Символические ссылки.

Символическая ссылка
(от англ. symbolic link) или «симлинк», не содержит внутри себя копии самого файла, она всего лишь «стрелка-указатель» на файл, своего рода аналог ярлыка в Windows. Обладает собственными правами доступа, так как сама является небольшим файлом, в котором прописан путь до целевого «файла-источника». Удалив «файл-симлинк», «файл-источник» не удаляется, именно поэтому такие ссылки называют «мягкими» (soft links).

Схема работы симлинка.

«СИМЛИНК» только указывает на => «файл-ИСТОЧНИК», который в свою очередь уже предоставляет пользователю «ИНФОРМАЦИЮ» записанную на жёсткий диск. Если удалить, переименовать или переместить «файл-ИСТОЧНИК», то ссылка перестанет работать.

В графическом файловом менеджере у «симлинка» в углу значка (файла или папки) стоит "стрелка" — которая поясняет, что это и есть «симлинк».
Название: ksnip_2026_02_27-235244.png
Просмотров: 1326

Размер: 5.3 Кб Название: ksnip_2026_02_27-235007.png
Просмотров: 1299

Размер: 6.2 Кб
При просмотре списка файлов, каталогов в терминале, с помощью команды " ls " , у символьных ссылок в конце названия стоит знак "@", а слеш "/" указывает на действительные каталоги (не симлинки).

[user@localhost ~]$ ls tmp/, Документы@, 'Рабочий стол'/, file.txt, симлинк.txt@

Основные свойства симлинков.

  • - можно создать несколько симлинков на один файл и они могут иметь разные имена;
  • - можно создать ссылку на несуществующий файл;
  • - могут ссылаться на другие разделы (см. ПРИМЕЧАНИЕ к статье);
  • - права доступа и номер inode отличаются от «файла-ИСТОЧНИКА»;

ls -li
225877 -rw-rw-r-- 1 user user 2 июл 30 21:45 file-источник
226500 lrwxrwxrwx 1 user user 4 июл 30 21:45 link-симлинк -> file-источник


У целевого файла и ссылки разные inode => 225877 и 226500 (числа в начале строки), число "1" указывает количество ссылок на inode, говорит о том, что на "ИНФОРМАЦИЮ" ссылается только один файл (без разницы, будь он "файл-источник" или файл-ссылка). В данном случае у каждого файла своя информация, "file-источник" ссылается на "ИНФОРМАЦИЮ" с данными, а "link-симлинк" ссылается на информацию в которой прописан только путь к "file-источнику".

  • - при изменении прав доступа на исходный файл, права на ссылку остаются прежними;
  • - создаются как на файлы, так и на каталоги;
  • - содержат в себе только указание на "файл-ИСТОЧНИК", а не его содержимое;
  • - если "файл-ИСТОЧНИК" переименовать, переместить или удалить, то все симлинки, указывающие на него, станут нерабочими.

Создание симлинка.

Симлинк можно создать как в файловом менеджере (например, Dolphin от KDE), пункт меню «Создать символическую ссылку», так и в терминале утилитой "ln" (из пакета coreutils):

ln -s /путь/к/файлу/файл-ИСТОЧНИК /путь/к/симлинку/файл-СИМЛИНК

Опция " -s " определяет, что симлинк будет «мягкой» ссылкой, без неё операционная система создаст «жёсткую» ссылку.

«ИСТОЧНИК» — может быть файлом или каталогом.
«СИМЛИНК» — может иметь одинаковое название с «ИСТОЧНИКОМ», если они находятся в разных каталогах.

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


Поиск символических ссылок.

Никакого учёта символических ссылок в файловой системе нет. Для их поиска используют утилиты "find" или "symlinks"

Поиск симлинков в текущем каталоге рекурсивно (т. е. и в подкаталогах):

find . -type l

Одна точка (.) — означает поиск в текущем каталоге.
Две точки (..) — это родительский, предыдущий каталог.

Узнать на что указывает симлинк:

readlink /путь/к/симлинку/СИМЛИНК

Найти как рабочие, так и битые ссылки:

symlinks .
other_fs: /home/user/файл1-симлинк -> /mnt/archive/файл1-источник
dangling: /home/user/файл2-симлинк -> /mnt/archive/файл2-источник


- в первой строке, — рабочий симлинк
- во второй, — битый симлинк, "файл2-источник" переименован, перемещён или удалён

Поиск битых ссылок:

find . -xtype l

symlinks [ОПЦИИ -cdorstvC] путь/к/каталогу/КАТАЛОГ

для рукурсивного поиска требуется указать опцию " -r "

symlinks -r /путь/к/каталогу/КАТАЛОГ

symlinks -r . | grep '^dangling:'
найдёт только битые ссылки


Удаление симлинков:

rm /путь/к/симлинку/СИМЛИНК
или
unlink /путь/к/симлинку/СИМЛИНК

ВНИМАНИЕ! Если СИМЛИНК является каталогом и случайно в конце команды поставить слеш " / " (обозначает вхождение в каталог), то симлинк останется на месте, а удалится содержимое каталога-источника, на который этот симлинк указывает. В случае если СИМЛИНК это файл, то команда на удаление не сработает — и симлинк, и файл-источник останутся на месте; система сообщит об ошибке: невозможно удалить, нет такого файла или каталога.

Удалить нерабочие симлинки:

symlinks -d .
dangling: /home/имя_юзера/файл-симлинк -> /mnt/archive/файл-источник
deleted: /home/имя_юзера/файл-симлинк -> /mnt/archive/файл-источник


Если команда запущена из каталога "~/", т. е. из Домашней папки "имя_юзера", то удалит все "битые" ссылки только в этом каталоге /home/имя_юзера/

Жёсткие ссылки.

Жёсткая ссылка (hard link) — это дополнительная запись в файловой системе с указанием на индексный дескриптор (inode) «файла-источника», но не копия этого файла. В файловой системе выглядит как ещё один файл, имеет те же права доступа, владельца, дату изменения, что и целевой «файл-источник». Создавая жесткую ссылку на «файл-источник», создаётся «файл-синоним» на одни и те же данные, не дублируя физическое содержимое «файла-источника». По сути и «файл-источник», и «файл-синоним» для операционной системы оба являются жёсткими ссылками на «ИНФОРМАЦИЮ» записанную на жёсткий диск.

Схема работы хардлинка.

Как уже было сказано выше, — операционная система с помощью «файла-ИСТОЧНИКА» предоставляет и указывает пользователю на «ИНФОРМАЦИЮ» записанную на жёсткий диск.

«ХАРДЛИНК», в отличии от «симлинка», напрямую, с помощью своего inode, указывает на записанную «ИНФОРМАЦИЮ», минуя указание на «файл-ИСТОЧНИК» и не зависит от него, так как у них одинаковые inode (в которых находятся метаданные о файле).

Удаление «файла-ИСТОЧНИКА» не приведёт к удалению «ИНФОРМАЦИИ» с диска, если у него есть жёсткие ссылки, до тех пор пока счётчик ссылок на inode не будет равен 0, т.е. пока не удалятся все «ХАРДЛИНКИ» и «файл-ИСТОЧНИК».
Например, если вы удалите файл /home/user/файл-ИСТОЧНИК, но у него остался файл /home/user/Документы/файл-ХАРДЛИНК, то «ИНФОРМАЦИЯ» с жёсткого диска удалена НЕ будет, до тех пор, пока существует «файл-ХАРДЛИНК».

В графическом интерфейсе «файл-ХАРДЛИНК» смотрится как обычный файл и не имеет визуальных отличий в виде "стрелки", как у «симлинка». Команда " ls " выдаст лишь простое перечисление файлов, без знака " @ " (как у симлинка).

[имя_юзера@localhost ~]$ ls
original.txt хардлинк.txt


Потому что — индексные дискрипторы (inode), права доступа, владелец, дата изменения — у них одинаковые.

[user@localhost ~]$ ls -lih
итого 8K
12093085 -rw-r--r-- 2 user user 13 фев 27 21:23 original.txt
12093085 -rw-r--r-- 2 user user 13 фев 27 21:23 хардлинк.txt


Общее количество ссылок на их inode равно "2", т.е. на "ИНФОРМАЦИЮ" с данными (записанную на жёсткий диск) ссылаются оба файла и "original.txt", и "хардлинк.txt".


Основные свойства хардлинков.

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

Утилита «ln» допускает возможность создания жёстких ссылок на каталог, но в большинстве дистрибутивов эту возможность блокируют.
Если переместить «ХАРДЛИНК» на другой раздел, то это будет уже совершенно другой файл, так как изменится его номер inode, он перестанет быть «хардлинком» для «файла-ИСТОЧНИКА» и станет самостоятельным файлом (не ссылкой).

  • - не может указывать на несуществующий файл;
  • - имеет те же права доступа и номер inode, что и исходный «файл-ИСТОЧНИК», при изменении разрешений на «файл-ИСТОЧНИК» изменятся права и у «ХАРДЛИНКА»;
  • - можно перемещать,переименовывать и даже удалять «файл-ИСТОЧНИК» без вреда «ХАРДЛИНКУ»;


ВНИМАНИЕ! Применение «жестких» ссылок на каталог может повредить файловую систему, ибо практически невозможно различить жёсткую ссылку от исходного файла. Теоретически можно создать жёсткую ссылку на каталог, используя опцию -d или -F, но в большинстве дистрибутивов Linux операционная система этого не допустит, даже от root.

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


Жёсткая ссылка создаётся в терминале командой " ln " без опции "-s":

[имя_юзера@localhost ~]$ ln original.txt hardlink.txt

Команда создаст «ссылку-хардлинк» в виде файла "hardlink.txt" на «файл-источник» "original.txt".
В данном случае команда выполняется из "~/", Домашней папки "имя_юзера", т. е. из /home/имя_юзера/ , без указания пути, значит «хардлинк» будет создан именно в ней.

Из руководства "man ln", утилита "ln" имеет следующий синтаксис:

ln [ОПЦИЯ]... [-T] ЦЕЛЬ ИМЯ_ССЫЛКИ
ln [ОПЦИЯ]... ЦЕЛЬ
ln [ОПЦИЯ]... ЦЕЛЬ... КАТАЛОГ
ln [ОПЦИЯ]... -t КАТАЛОГ ЦЕЛЬ…

-t, --target-directory=КАТАЛОГ
             указать КАТАЛОГ, в котором будут созданы ссылки
-T, --no-target-directory
             всегда воспринимать ИМЯ_ССЫЛКИ как обычный файл

ЦЕЛЬ — это имя "файла-ИСТОЧНИКА" или путь/к/файлу/файл-ИСТОЧНИК , ссылка создаётся на ЦЕЛЬ.

ИМЯ_ССЫЛКИ — это имя "файла-ссылки" или путь/к/файлу/ИМЯ_ССЫЛКИ , с опцией " -s " создаётся «симлинк», без неё «хардлинк».

Первая форма — создаст ссылку (хардлинк или симлинк) «ИМЯ_ССЫЛКИ» на «ЦЕЛЬ», с указанием пути или без него. Без указания пути ссылка создаётся в каталоге из которого дана команда.
Вторая форма — создаст ссылку (хардлинк или симлинк) в текущем каталоге с тем же именем что и «ЦЕЛЬ», при условии, что в в нём нет файла с тем же именем.
В третьей и четвёртой форме — возможно указание нескольких ЦЕЛЕЙ, о чём и говорится в руководстве к утилите
"man ln" или справке "ln --help".
«При использовании третьей и четвёртой форм создать в КАТАЛОГе ссылку на каждую ЦЕЛЬ.»

КАТАЛОГ — это путь/к/каталогу/КАТАЛОГ в котором создаётся ссылка (хардлинк или симлинк).

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

Возможно скопировать хардлинк консольной утилитой "cp" с опцией "-l",
из руководства "man cp":
«-l, --link — создавать жёсткие ссылки на файлы вместо копирования»

[имя_юзера@localhost ~]$ cp -l хардлинк.txt /home/имя_юзера/Документы/

Утилита скопирует файл "хардлинк.txt" из "Домашней папки" в "Документы" с тем же именем и свойствами хардлинка.

А так же командой "ln", создавая хардлинк на хардлинк, которые оба будут указывать на один и тот же «файл-источник».

После переименования хардлинка его свойства остаются прежними.

Поиск жёстких ссылок:

find /путь/к/КАТАЛОГу_проверки -samefile /путь/к/файлу/файл-ИСТОЧНИК

Каталог проверки на предмет поиска «хардлинков» должен быть в пределах одного раздела (файловой системы), что и «файл-источник».

[user@localhost ~]$ find ~/ -xdev -samefile /путь/к/файлу/файл-ИСТОЧНИК

Символы "~/" (тильда и слеш) в команде, указывают на "Домашнюю папку" пользователя "user", т. е. на /home/user/, а параметр -xdev исключает из поиска другие примонтированные (mounted) файловые системы (разделы), что ускоряет работу утилиты «find».


Риски и безопасность.

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

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

Руководство для начинающих…


Чтобы снизить риски, рекомендуется:
  • - использовать относительные пути, когда это возможно, чтобы улучшить переносимость.
  • - документировать использование симлинков, чтобы избежать путаницы для других пользователей или администраторов.
  • - быть осторожным при использовании симлинков в общих средах, чтобы избежать проблем с безопасностью.»

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

Довольно хорошая статья на тему безопасности: «Как защитить жесткие и символические ссылки в CentOS / RHEL»

ПРИМЕЧАНИЕ.

В статье есть фразы с упоминанием о разделах, наподобие этой, — «симлинки могут ссылаться на другие разделы,» — говоря о "разделах", для упрощённого понимания, новичкам в Linux, имеются ввиду "файловые системы". Но на начальном этапе новички часто путают понятия "файловые системы" с "типом файловых систем", поэтому пришлось применить "разделы".

Файловая система — это способ организации данных на жёстком диске, который определяет их запись, чтение и хранение. ФС тесно связана с ядром ОС, обеспечивая быстрый доступ к данным и надёжность операций ввода-вывода.
Важно: файловая система не обязательно напрямую связана с физическим носителем информации — существуют виртуальные файловые системы, сетевые файловые системы, которые являются лишь способом доступа к файлам, находящихся на удалённом компьютере.

Основные типы ФС:
  • Ext4, Btrfs, XFS и др. — используются в Linux-Unix системах.
  • NTFS, FAT, HFS — используются в системах Windows и Mac OS.

Раздел — это логически выделенная область на физическом устройстве (жёсткий диск, флешка и пр.). В структуре MBR может быть только 4 основных (первичных) раздела или 3 основных плюс 1 расширенный (не содержит собственной файловой системы) с логическими разделами внутри. В структуре GPT количество разделов не ограничено.

ФС создаётся на разделе, если разделов несколько, то в границах одного раздела находится только одна "ФС-1", в границах другого раздела другая "ФС-2", даже если обе они одинакового типа, например Ext4.


Использованы материалы со следующих сайтов:

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

«О мягких и жёстких ссылках в Linux.»

«Кое-что об inode.»

«Символические и жесткие ссылки Linux.»

«Команда «.» (точка) в Linux.»

«Что такое символические и жесткие ссылки в Linux.»

«Символические и жесткие ссылки в Linux.»
ПРИМЕЧАНИЕ: на этом сайте дана команда ln source.txt link1.txt link2.txt link3.txt, но она не создаст несколько хардлинков, либо автор ошибся, либо привёл схематический пример.

«Жёсткая ссылка» (вики) , «Inode» (вики)

Что такое симлинк и как его могут использовать злоумышленники

Особенности файловой системы в Linux и распространенные типы

Файловые системы в Linux: их структура и типы

Посвящается моему первому админу «xxblx», человеку с большим терпением и необычайным умением доходчиво объяснять. Именно он пояснил мне что такое «симлинки» и как их создавать, ибо статьи в интернете были написаны слишком сложно для новичков.
Поэтому я постарался как можно подробнее объяснить тему символьных и жёстких ссылок, а так же кое-что связанное с ними непосредственно.
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 3
Комментарии
  1. Старый комментарий
    Цитата Сообщение от algri14
    Символическая ссылка (от англ. symbolic link) или «симлинк», не содержит внутри себя копии самого файла, она всего лишь «стрелка-указатель» на файл, своего рода аналог ярлыка в Windows.
    Не совсем так. В Windows тоже есть симлинки и симлинк там это более низкоуровенная сущность чем простой ярлык. Можно, допустим сделать симлинк на библиотеку в каталоге программы, чтобы прога "увидела" эту библиотеку, с ярлыком так не работает.
    Цитата Сообщение от algri14
    ибо статьи в интернете были написаны слишком сложно для новичков.
    Сама по себе тема не такая уж и сложная, однако не только лишь все умеют или хотят нрмально писать статьи. Благо сейчас уже есть другие средства.. (хотя сейчас эти другие средства уже открыто используются и не во благо.. но, не будем о грустном..)
    Запись от testuser2 размещена 16.03.2026 в 07:39 testuser2 вне форума
  2. Старый комментарий
    Аватар для Royal_X
    На Windows тоже есть ссылки на файлы и папки. Я частенько их использую. Команда mklink (/j, /d, /h).
    Запись от Royal_X размещена 16.03.2026 в 11:06 Royal_X на форуме
  3. Старый комментарий
    Аватар для algri14
    Эта статья в основном рассчитана на начинающих новичков, отсюда и пояснение Домашней папки " ~/ " (состоящей из тильды и слеша), и каталог пользователя как "имя_user", который чайники копируют дословно и вставляют в команду (вместо подстановки своего "имени"), потом не понимают, — почему команда не срабатывает. У новичков много курьёзов на начальном этапе, поэтому статья написана таким стилем.
    Цитата Сообщение от algri14
    всего лишь «стрелка-указатель» на файл, своего рода аналог ярлыка в Windows.
    Цитата Сообщение от testuser2
    Не совсем так.
    Поэтому фраза написана не "аналог", а "своего рода аналог", т.е. — похожа на ярлык Windows. Но это мелочь, главная мысль раскрыта.
    Мне в своё время, мозг сломали и вывернули шиворот навыворот (лет 10 назад, когда был совсем чайником) строки из man'а:

    ln [ОПЦИЯ]... [-T] ЦЕЛЬ ИМЯ_ССЫЛКИ
    ln [ОПЦИЯ]... ЦЕЛЬ
    ln [ОПЦИЯ]... ЦЕЛЬ... КАТАЛОГ
    ln [ОПЦИЯ]... -t КАТАЛОГ ЦЕЛЬ…


    ЦЕЛЬ, — какая цель, куда "прицель", и только админ «xxblx» всё по местам расставил. Мышление у новичков и опытных пользователей очень разное, ну как в детской сказке про букву «Я», когда девочка не могла понять букву и произносила «тыблоко», вместо «яблоко».
    Если в man подставить "ИСТОЧНИК" (вместо ЦЕЛЬ), то будет понятно сразу всем чайникам. Хотя по логике ведь хардлинк делается на файл-ЦЕЛЬ, именно так думал автор мана, давая такое описание, совершенно не зная про «тыблоко» чайников.

    А далее в инете много обширного материала по сопутствующим темам.
    Запись от algri14 размещена 16.03.2026 в 14:38 algri14 вне форума
 
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru