Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37

Блокировка входа в подчиненную форму, если в главной не заполнены основные поля

10.01.2016, 19:51. Показов 2833. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Бьюсь над таким вопросом: как заблокировать вход в Подчиненную форму, если в Главной форме (на которой размещена Подчиненная в режиме таблице) не заполнены основные поля и они ключевые?
Что сделал: повесил на событие Вход в подчиненную форму проверку IsNull через If, но это работает только один раз. А у меня шесть ключевых полей в Главной. Заполняю первое и делаю попытку входа в Подчиненную (это могут делать мои пользователи) и выходит сообщение: "Индекс или ключ не могут содержать пустое значение", что понятно, т.к. не все ключевые поля заполнены. Вот это сообщение я и хочу заменить на какое - нибудь мое, например: "Введите те-то мол данные".
Здесь на форуме была идея скрыть подчиненную форму до полного заполнения главной, но мне нужен именно мой вариант. В Рунете нашел одно лишь предложение:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Form_Current()
  Me!MatName.SetFocus
End Sub
 
Private Sub frm_MatPrice_Enter()
  If IsNull(Me!Mat_ID) Then
    MsgBox "Сначала укажите основные данные!", vbCritical, "admin"
    Me!MatName.SetFocus
  End If
End Sub
,

но у меня оно не работает и другие идеи типа До (После) обновления,вставки и т.п. не получаются. Что не так?

и второй вопрос как начинающий художник опытным художникам: а вообще заполняют ли Подчиненную форму в режиме таблицы, когда она располагается на Главной или она там только для просмотра?
С уважением!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2016, 19:51
Ответы с готовыми решениями:

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

Добавление нового поля в подчиненную форму
Здравствуйте, уважаемые специалисты. Помогите пожалуйста. Делаю БД в Аксесс 2013. Есть форма, которая содержит в себе подчиненную форму. На...

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

17
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
10.01.2016, 20:44
Цитата Сообщение от bychuk Посмотреть сообщение
Вот это сообщение я и хочу заменить на какое - нибудь мое, например: "Введите те-то мол данные".
На событии Error (Ошибка) главной формы анализируйте код ошибки. И если он 3058 ("Индекс или ключ не могут содержать пустое значение"), то можно дать свое сообщение.
Visual Basic
1
2
3
4
5
6
Private Sub Form_Error(DataErr As Integer, Response As Integer)
  If DataErr=3058 then
     MsgBox "Не заполнены обязательные поля"
     Response = acDataErrContinue
  End If
End Sub
Добавлено через 58 секунд
Цитата Сообщение от bychuk Посмотреть сообщение
а вообще заполняют ли Подчиненную форму в режиме таблицы, когда она располагается на Главной или она там только для просмотра?
Нет однозначного ответа. По ситуации. Доступны оба варианта
2
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
10.01.2016, 22:46  [ТС]
Гигантское спасибо! Это помогло. Правда, я хотел, чтобы при каждом пропущенном пользователем поле выскакивало соответствующее этому полю сообщение. Ну да ладно и так отлично. Это раз.
Второе, пошёл перехлест с событием Вход в Подчиненную форму. Получается так: если этого события нет, то при первом открытии Главной, когда она пуста и готова к заполнению, пользователь может "прорваться" в Подчиненную и набрать там строку, и хотя она там из всего двух полей, но если он потом увидит, что эту работу он сделал впустую (т.к. в Главной записей не сделал), то будет злиться и говорить, что программа плохая, что наверное соответствует действительности. Эту проблему решил тем же, Вашим способом. С другой стороны - пусть полазит человек, посмотрит возможности.
И всё-таки, можно ли сделать так, чтобы по каждому незаполненному полю Аксесс ругался по-разному и чтоб по-моему?
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
10.01.2016, 22:47
- сори, не так поняла вопрос, ответила не о том-
1
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
11.01.2016, 01:27
Вариант общий: добавить нужным контролам в свойство тэг какую-нибудь строку. И проверять в цикле:
если у контрола такой-то тэг и контрол не заполнен, то выдать какое-нибудь сообщение.
Вариант для выборочной ругани: создать несколько надписей и сделать их скрытыми. Проверять каждый контрол отдельно и делать соответствующую надпись видимой.

Что до входа в подчиненную форму раньше положенного срока, то можно в момент загрузки главной формы блокировать подчиненную форму и разблокировать её при внесении изменений в главной. Ну, или после того, как все нужные контролы заполнены, или как угодно..
1
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
11.01.2016, 21:33  [ТС]
corbis, честно говоря, немного не понял ... не ориентируюсь в некоторых терминах, т.к. я "начинающий"
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
11.01.2016, 22:25
Контрол - textBox (поле), comboBox(поле со списком), label (надпись). У контролов есть свойство "Tag". Что именно не понятно?
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
12.01.2016, 22:25
Цитата Сообщение от bychuk Посмотреть сообщение
И всё-таки, можно ли сделать так, чтобы по каждому незаполненному полю Аксесс ругался по-разному и чтоб по-моему?
Можно, конечно. И Вам уже подсказали как. Но я хочу сказать о стратегии поведения. Ведь достаточно часто данные заполняются не полностью. Ну, не пришли еще все данные, по всем обязательным полям. И что не вводить их пока не будет полный пакет? Так Ваши юзеры заблудятся в бумагах. Что ввели, что не ввели - кавардак.

Я делаю иначе. Отменяю обязательные поля как класс. Нет их. Совсем. Но на форме помечаю условным форматированием - красный фон когда поле пустое, обычный заполненное. Это привлекает внимание. Когда есть все данные, то как правило наличие ярких цветовых меток значительно уменьшает вероятность случайного незаполнения.

Второе. Делаю форму, или кнопку на имеющейся форме, в которой собирается статистика незаполненных записей по обязательным" полям. Это легко, делается обычными запросами с проверкой на NULL. И когда данные приходят, юзер быстрым поиском находит нужную запись и дозаполняет ее. Администратор БД также может проверить состояние заполненности и сделать нужные втыки.
4
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
12.01.2016, 23:04  [ТС]
Благодарю Вас за поддержку! Чтобы не тратить время, пока я взял на вооружение первый Ваш вариант, в данный момент это меня устраивает полностью. Чтобы двигаться дальше. И кстати, да, после этого я пришел к отмене обязательного заполнения полей, в данном случае это похоже лишнее. Проблема в том, что мои пользователи (я один из них) не должны пропускать этих полей: 1. это ключевые поля и если юзеры получат системное сообщение об ошибке это введет их в ступор ("дальше что делать") и 2. эти поля представляют собой код статьи расходов по бюджету, который составной и обязательный, т.е. деньги не могут перечисляться и учитываться без указания кода и т.п. Т.е. финансирование по какой статье? Да и приходят деньги целевые, с указанием реквизитов. И именно поэтому мне надо, чтобы если пользователь прошляпил в форме какую-то часть кода (он состоит из 26 цифр, сгруппированных из шести подстатей, разделов, подразделов и т.д.), то он должен получить конкретное указание - куда посмотреть и что написать. Но пока я свел все возможные ошибки в одно сообщение и оформил процедурой по Вашему совету.
Совет corbisа, если Вы об этом написали сейчас (И Вам уже подсказали как), я совершенно не понял и по технологии и по терминологии, о чём ему сообщил с причиной. Свойство Tag в полях не увидел (у меня по-русски), а в Рунете не стал искать что это такое, т.к. уже говорил, что удовлетворился Вашим вариантом пока.
Пользуясь случаем хотел у Вас спросить - в чём может быть проблема: в форме три вычисляемых поля Поступило, Распределено, Остаток. По двум первым использую DSum. Остаток как разница через Sum. На одном компьютере результаты вычисляются и мгновенно отражаются. Млин, этот же файл на другом компьютере, всё то же, а результаты отражаются только после моего щелчка на этих двух полях. Пока не щелкну там мышью - пустота. Щелкаю - появляются! Именно поля, где должны быть цифры.
Благодарю за помощь!
0
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
23.09.2016, 23:21  [ТС]
Кстати, кому интересно. Проблему блокировки входа в подчиненную форму до заполнения ключевых полей (и главное - с "моими" сообщениями) я решил. На событии До обновления Главной формы установил VBA-код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Блокировка записей в подчинённую форму до заполнения Главной
If IsNull(DATA.Value) Then 'Дата не введена
   MsgBox "Сначала введите дату.", vbOKOnly + vbExclamation, "Внимание"
   DATA.SetFocus  'Установка курсора в поле дата
Exit Sub
End If
   If IsNull(ComboPodrazdel.Value) Then
   MsgBox "Вы забыли ввести подраздел.", vbOKOnly + vbExclamation, "Внимание"
   ComboPodrazdel.SetFocus
   Exit Sub
   End If
If IsNull(ComboCel.Value) Then
   MsgBox "Вы забыли ввести статью.", vbOKOnly + vbExclamation, "Внимание"
   ComboCel.SetFocus
Exit Sub
End If
   If IsNull(ComboVid.Value) Then
   MsgBox "Вы забыли ввести вид.", vbOKOnly + vbExclamation, "Внимание"
   ComboVid.SetFocus
   Exit Sub
   End If
If IsNull(ComboPodStatya.Value) Then
   MsgBox "Вы забыли указать подстатью.", vbOKOnly + vbExclamation,  "Внимание"
   ComboStatya.SetFocus
Exit Sub
End If
   If IsNull(KVR.Value) Then
   MsgBox "Надо указать код вида подстатьи.",  vbOKOnly + vbExclamation, "Внимание"
   KVR.SetFocus
   Exit Sub
   End If
If IsNull(ComboKosgu.Value) Then
   MsgBox "Надо указать сектор.", vbOKOnly + vbExclamation, "Внимание"
   ComboKosgu.SetFocus
Exit Sub
End If
End Sub
Возможно, ранее я его не правильно оформлял, в связи с чем ничего не получалось.
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
23.09.2016, 23:27
лучше бы функцию для повторяющегося кода использовать. А для вывода сообщений я обычно использую служебную таблицу. Но если вам так удобнее и понятнее, то лучше не заморачиваться.

Цитата Сообщение от bychuk Посмотреть сообщение
Свойство Tag в полях не увидел (у меня по-русски)
В русском варианте оно называется "Дополнительные сведения". Вкладка "Другие"
2
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
24.09.2016, 00:00  [ТС]
Цитата Сообщение от corbis Посмотреть сообщение
лучше бы функцию для повторяющегося кода использовать. А для вывода сообщений я обычно использую служебную таблицу. Но если вам так удобнее и понятнее, то лучше не заморачиваться.
ну почему же. я за оптимальные решения. просто на том этапе эволюции для меня и тот код был неподъёмным.
как примерно можно организовать функцию повторяющегося кода? (ещё долго мне эволюционировать)

Добавлено через 24 минуты
да, сейчас уже подразобрался с чуток. в т.ч. с вашим советом о возможности блокировки входа в подчинённую форму на этапе загрузки Главной (правда не пробовал, поэкспериментирую на днях). тогда было не понятно. насчёт повторяющегося кода: я так понимаю, что надо назначать переменную для поочередной проверки незаполненных полей, которая потом из таблицы выводит соответствующее значение? если не то, остановииииите мееняяяя!
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
24.09.2016, 10:23
Цикл по контролам:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
 Dim ctl As control
 For Each ctl In Me
         ' в данном случае проверяется только текстбоксы и комбобоксы
         If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
             ' Здесь проверяем значения свойства Tag.
             ' если смотреть не в конструктор формы, а в свойства редактора VB,
             ' то там оно именно Tag и называется.
             If NZ(ctl.Tag,"") <> "" Then
                 ' нужные действия
             End If
         End If
 Next ctl
В данном варианте я бы в свойство Tag записал ID строк в справочнике, тогда DLookup'ом очень просто их будет доставать.
Visual Basic
1
2
3
4
5
6
Function fnc(ctrl as control)
If NZ(cntl,"")="" Then
   MsgBox DLookup("string","tbl","stringID=" & ctrl.Tag)
   ctrl.SetFocus
Exit Sub
End If
Это строку "Вы забыли ввести статью.", vbOKOnly + vbExclamation, "Внимание" вставить в таблицу-справочник всяких сообщений и функцией Dlookup доставать. Либо в отдельной функции Case выбирать.

Добавлено через 6 минут
Применимо к вашему коду:

Visual Basic
1
2
3
4
5
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Блокировка записей в подчинённую форму до заполнения Главной
   fnc DATA
   fnc ComboPodrazdel
END sub
PS всё писал без тестов, просто идея для реализации
1
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
24.09.2016, 20:07  [ТС]
corbis, спасибо большое. сегодня же сяду за код.
знание сила!

Добавлено через 9 часов 10 минут
Всё отлично работает. Это потрясающе. Немного скорректировал коды и в моём исполнении они получились вот такими:
Вариант 1:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Блокировка записей в подчинённую форму до заполнения распределения
Dim ctl As Control
 For Each ctl In Me ' в данном случае проверяется только текстбоксы и комбобоксы
         If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
             ' Здесь проверяем значения свойства Tag.
            If Nz(ctl.Tag, "") <> "" Then
              If IsNull(ctl.Value) Then
             MsgBox ctl.Tag, vbOKOnly + vbExclamation, "Внимание"
              ctl.SetFocus
              Exit Sub
              End If
            End If
         End If
 Next ctl
End Sub
Как видно, код стал короче и изящнее, чем мой последний вариант, в котором последовательно проверяется каждое поле с указанием каждый раз "реквизитов". Просто класс! Моя доработка заключилась в том, добавил проверку через If данные полей (IsNull). Возможно я не прав, но именно так заработал этот вариант.

Второй вариант у меня получился такой (и он по факту комбинированный от двух ваших советов):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctrl As Control
 For Each ctrl In Me ' в данном случае проверяется только текстбоксы и комбобоксы
         If ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox Then
             ' Здесь проверяем значения свойства Tag.
   If Nz(ctrl.Tag, "") <> "" Then
     If IsNull(ctrl.Value) Then
     MsgBox DLookup("string", "tbl", "stringID=" & ctrl.Tag)
     ctrl.SetFocus
     Exit Sub
     End If
   End If
         End If
Next ctrl
End Sub
А вот с функцией ничего не получается, т.к. событие До обновления каждый раз запускает следующую по списку функцию и идет проверка всех полей до конца. Т.е. если пользователь не ввел первое поле и полез в Подчиненную, то событие До обновления заставить его "щелкать" на OK, пока программа не пройдет по всем полям. Возможно я чего-то там не понял в функции.

Добавлено через 6 минут
В общем, глобальное спасибо за поддержку!
Итого получилось четыре варианта:
1. mobile: где Ошибка формы 3058
2, 3. corbis: два последних, указанных здесь (жаль с функцией я не подразобрался пока)
4. который мой, длинный
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
24.09.2016, 20:14
строку 6 и 7 можно совместить.
Цитата Сообщение от bychuk Посмотреть сообщение
если пользователь не ввел первое поле и полез в Подчиненную, то событие До обновления заставить его "щелкать" на OK, пока программа не пройдет по всем полям
Не, так быть не должно. Цикл должен прерываться после первого найденного пустого поля. И лучше вместо
Цитата Сообщение от bychuk Посмотреть сообщение
IsNull(ctrl.Value)
использовать
Visual Basic
1
Nz(ctrl,"") = ""
или
Visual Basic
1
Len(ctrl & "") = 0
1
2 / 2 / 0
Регистрация: 15.06.2015
Сообщений: 37
24.09.2016, 20:46  [ТС]
Цитата Сообщение от corbis Посмотреть сообщение
Не, так быть не должно. Цикл должен прерываться после первого найденного пустого поля. И лучше вместо
Вот такой он у меня:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Блокировка записей в подчинённую форму до заполнения распределения
 fnc DATA
 fnc ComboPodrazdel
 fnc ComboStatya
 fnc ComboVid
 fnc KVR
 fnc ComboPodstatya
 End Sub
 
Function fnc(ctrl As Control)
   If Nz(ctrl.Tag, "") <> "" Then
     If IsNull(ctrl.Value) Then
     MsgBox DLookup("string", "tbl", "stringID=" & ctrl.Tag)
     ctrl.SetFocus
     Exit Function
     End If
   End If
End Function
Добавлено через 3 минуты
Цитата Сообщение от corbis Посмотреть сообщение
использовать
Visual BasicВыделить код
1
Nz(ctrl,"") = ""
или
Visual BasicВыделить код
1
Len(ctrl & "") = 0
Ок. Буду иметь ввиду. Как то я сталкивался с тем, что Value не подходит, но пока ещё не силён в свойствах-методах, обходил без разбора причины. Со временем может разберусь в особенностях.

Добавлено через 3 минуты
Цитата Сообщение от bychuk Посмотреть сообщение
Моя доработка заключилась в том, добавил проверку через If данные полей (IsNull). Возможно я не прав, но именно так заработал этот вариант.
в этом месте я конечно перегнул, ибо у уважаемого corbisа так и написано в этом месте:
' нужные действия

Мои извинения.

Добавлено через 19 минут
Цитата Сообщение от corbis Посмотреть сообщение
строку 6 и 7 можно совместить.
Ну конечно, про эту возможность я и забыл ():
Visual Basic
1
If Nz(ctrl.Tag, "") <> "" And IsNull(ctrl.Value) Then
Сегодня у меня день технологических прорывов.
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
24.09.2016, 20:47
Цитата Сообщение от bychuk Посмотреть сообщение
обходил без разбора причины
причина тут в том, что Access иначе, чем другие программы работает с Value. Достаточно просто указать имя контрола. Это будет правильный value. К сожалению, тонкостей сам не знаю, пока принимаю как данность.
1
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
24.09.2016, 21:34
Цитата Сообщение от corbis Посмотреть сообщение
Value
Вкратце так: Value умолчательное свойство полей и контролов и поэтому его можно не писать. Если нет указания на другое свойство, обращение к полю/контролу отдаст Value. В режиме редактирования поля свойство Value может измениться и до сохранения видимое значение это свойство Text.

Исключение - многозначные поля, где Value не свойство, а объект, содержащий множество значений.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2016, 21:34
Помогаю со студенческими работами здесь

Как отображать подчиненную форму в окне главной при смене флага?
народ!!!! такой легенький вопросик - как отображать разные подчиненные формы в окне главной при смене значений флага??? отчень нужно...

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

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

Не переключать слайд, если не заполнены определенные поля
Здравствуйте. Есть слайдер Royal Slider. На слайдах у меня различного рода поля, радиокнопки и тп. Нужно сделать так, чтобы не было...

Как сделать вывод сообщения если поля не заполнены?
&lt;?php $_POST = trim($_POST); $_POST = trim($_POST); $_POST = trim($_POST); if(empty($_POST)) exit(); //...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
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