Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731

Доступ к пользовательскому класу по void указателю

15.10.2016, 15:37. Показов 2649. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть указатель
C++
1
void* pointer = 0; //указатель на объект
Известно, на какой именно тип объекта ссылается указатель.

Пусть в данном случае это пользовательский тип, то есть есть это объект класса Button.

Мне необходимо чтобы некоторая функция возвращала указатель как указатель на Button
Как я только не пытался....
C++
1
2
3
    Button *pointer() {
        Button* but_time = Button(pointer);
        return but_time;
Далее эта функция используется чтобы прикрепить ссылку на конкретный объект.
C++
1
2
    Button* Button_time = pointer_object[pointer].pointer();
    Button_time[0].~Button;
подскажите пожалуйста каким образом можно пере присвоить ссылку с (void*) на (Button*)
Я понимаю что тут надо что-то типо конструктора делать, но как?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2016, 15:37
Ответы с готовыми решениями:

Массив по указателю void*
Как сравнивать элементы массива имея указатель void* на него, размер массива и размер в байтах одного элемента?

Указателю void присвоить значение
Добавляю в TreeView узлы для дерева и там есть такое поле, как Data. Оно имеет тип void *. Я хочу в это поле записать число, а потом с...

Преобразование указателя void к указателю на структуру
Здравствуйте! Можете объяснить эти строки в программе? int cmp(const void* p1, const void* p2) { return...

44
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
15.10.2016, 18:53
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от koker007 Посмотреть сообщение
. Можно пропроще, без жаргона и термиров, а то так еще сильнее затеряюсь
О порядке объявления и вызова уже сказал nd2:
Цитата Сообщение от nd2 Посмотреть сообщение
Но не в том порядке. Класс выше должен быть.
так что не актуально. Скоуп это область.
Цитата Сообщение от koker007 Посмотреть сообщение
Ошибки остаются.
Давайте. Как ругается так и копируйте. И строки на которые ругается тоже.
Цитата Сообщение от koker007 Посмотреть сообщение
Авось проблема и решится сама собой.
Это бывает редко. Однако, многое будет проще и лаконичнее. Без массивов указателей на функции, без жутких перечислений для индексации. Без свичей будет светло, короче.

Добавлено через 13 минут
Цитата Сообщение от koker007 Посмотреть сообщение
Из класса меню вызывается удаление:
Функция доступа к классу должна быть в классе, обычно.

Или сначала опережающе объявите функцию:
C++
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
void delete_object(string&);//лучше строку по ссылке если она не меняется - даже по константной
//теперь класс - ему уже видно всё что нужно для счастья/линковки
class Button {
 
};
 
//ниже определение функции
//ей теперь видно батон 
void delete_object(string& met_key_text) {
    short Deleted_yes_no = 0;
    //Расчитывается хеш-число для текстовой метки
    short pointer_obj = pointer_object[0].hashing(met_key_text);
    for (int i = 0; i < 7000 && Deleted_yes_no == 0; i++) {
 
        //Сдвигаем позицию относительно хеш-числа
        short pointer = pointer_obj + i;
        if (pointer > 7000) {
            pointer = pointer - 7000;
        }
        
        //Если метка найдена
        if (pointer_object[pointer].get_key_text() == met_key_text) {
            //Узнаем какой пользовательский тип и удаляем
            //тип кнопка
            if (pointer_object[pointer].get_type() == "Button") {
                Button *Button_time = static_cast<Button*>(pointer_object[pointer].get_pointer());
                Button_time[0].~Button;
                Deleted_yes_no = 1;
            }
        }
    }
}
и если надо - friend её в классе объявите.
1
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
16.10.2016, 09:53  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
без жутких перечислений для индексации
В общем я начал писать так, как рекомендовали, через наследование. Но т.к. с наследованием только столкнулся возникли вопросы.

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

В общем у меня есть пара вопросов.


1) Т.к. мне надо изначально в любом случае создать некоторый массив класса указателей, не зная изначально какой будет класс наследник, и раз вы предлагаете в моем случае использовать именно такой вариант, то верно ли мое предположение; наследника можно как-то "нарастить" для базового класса?

2) если да, то как же это делается? пока что мне кажется что как-то изнутри, вызовом функции внутри базового класса.

3) и не удалится ли объект базового класса если удалить класс наследник? то есть если освободить объект-указатель в моем случае. и как это сделать? чтобы все-таки удалился только наследник.

4) Т.к Класс наследник может создаться в любой момент программы то и доступ к нему возможен только по указателю? Ну как и раньше? верно?

Пока что это все вопросы.. продолжу изучать наследование. Спасибо, что помогаете, не смотря что основной вопрос этой темы давно уже решен.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 10:18
Цитата Сообщение от koker007 Посмотреть сообщение
наследника можно как-то "нарастить" для базового класса?
Не просто, верно. Железо-бетонно. Наследник - по определению - нарощенный расширенный родитель. Тут рекомендую сократить данные-члены (свойства) в базовом до минимума. В идеале - до нуля. То есть лучше всего если в нём будут только виртуальные методы (включая деструктор!! - см. далее...). И лучше всего - неопределённые (абстрактный базовый класс).
Цитата Сообщение от koker007 Посмотреть сообщение
2) если да, то как же это делается? пока что мне кажется что как-то изнутри, вызовом функции внутри базового класса.
В наследнике в любом случае появится определение виртуальных методов (если он не абстрактны тоже, то всех) плюс свои данные и невиртуальные методы. Так что он, воленс ноленс, будет шире.
Цитата Сообщение от koker007 Посмотреть сообщение
и не удалится ли объект базового класса если удалить класс наследник?
Удаляются (деинициализируются если точно, потому как удаляются только зубы) не классы, а экземпляры. Каждый наследник содержит родителя как часть и поэтому деструктор для него/неё будет вызван. Но главное, - определите виртуальный деструктор для наследника (слово virtual и всё). Тогда каждый наследник уходя порубит только то что сам нахватал.
Цитата Сообщение от koker007 Посмотреть сообщение
Т.к Класс наследник может создаться в любой момент программы то и доступ к нему возможен только по указателю?
Забудьте слово класс. Когда речь о объекте, лучше - объект. Объекты на которые указывают указатели должны быть живы. Тут могут быть разные подходы. Например создание коллекции - владельца, в которой указатели на динамические объекты. Она создаёт и удаляет, а остальные пользуются.
koker007, вообще, если Вы только начали с этим, рекомендую потренироваться на простеньких задачках сначала. Иначе потратите неоправданно много нервов и времени.
Задача, которую Вы поставили именно так и может быть решена красиво, но к этому нужно плавно подойти.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 13:03
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не просто, верно. Железо-бетонно. Наследник - по определению - нарощенный расширенный родитель.
По моему такие утверждения могут вести к неправильным выводам и заблуждениям.
Наследник является Базовым классом, т.е должен иметь ровно тот же ф-ционал что и в родителе, и должна сохраняться работоспособность кода при подмене базового класса - наследником.
Проще говоря базовый класс - обобщение своих предков, обобщение ф-ционала с которым нужно будет работать без знания конкретных классов и особенностей их поведения.

Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом.
Принцип подстановки Барбары Лисков


Можно использовать наследование для наращивания, но чаще всего используется именно переопределение поведения. Т.е есть набор вир.методов являющихся интерфейсом, в которые переопределяются в наследниках(поведение). Интерфейс тот же - поведение разное.

Пример кода: Публичное и приватное наследование классов
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 17:49
Цитата Сообщение от Avazart Посмотреть сообщение
Наследник является Базовым классом,
Не является.
Цитата Сообщение от Avazart Посмотреть сообщение
Можно использовать наследование для наращивания, но чаще всего используется именно переопределение поведения.
Нет. Особенно при использовании паттерна - интерфейс
http://dic.academic.ru/dic.nsf/ruwiki/93577
то есть, - абстрактный базовый класс без данных и с чисто виртуальными методами.
Но и при наследовании интерфейсов, также соблюдается иерархичность, позволяющая расширяться очень гибко наследуя необходимое поведение. И именно такой подход ведёт к минимальным издержкам в виде ненужных свойств и методов.
Avazart, я не уверен, что ТС готов к тому о чём речь. Главное, чтобы он понял, что родитель при наследовании уже или равен (частный случай о котором Вы говорите и в котором родителем является по сути брат или сестра. Даром, что его конструктор опережает, а во всём почем - равенство) потомку. Потомок - шире или равен. Хотя в его конструкторе на один конструктор минимум больше и если принципиально, то он всё таки шире. Даже если только переопределяет родителя.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 18:06
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не является.
Учите мат часть.

https://ru.wikipedia.org/wiki/... 8.D0.B5.29
http://metanit.com/sharp/patterns/1.2.php
Итд итп...
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 18:07
Цитата Сообщение от Avazart Посмотреть сообщение
Учите мат часть.
Я последний раз реагирую на Ваши слова. Вы постоянно оцениваете (пытаетесь) и при том, что ... - сами знаете что.
Вот из wiki чтобы попроще:
Класс, опредёленный через наследование от другого класса, называется: производным классом, классом потомком (англ. derived class) или подклассом (англ. subclass);
Класс, от которого новый класс наследуется, называется: предком (англ. parent), базовым классом (англ. base class) или суперклассом (англ. parent class).
это тут:
https://ru.wikipedia.org/wiki/... 0%B8%D0%B5)
при том что наследник есть (IS) родитель + расширение.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 18:09
Цитата Сообщение от IGPIGP Посмотреть сообщение
что ... - сами знаете что.
Хорош цитировать "букварь", может стоит двигаться дальше? и все же почитать ссылки которые дал?

Не по теме:

P.S: Терпения много, но могу минусануть если настроение будет плохое с горяча, я бываю щедрый ]:->.

0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 18:13
Цитата Сообщение от Avazart Посмотреть сообщение
Хорош цитировать "букварь", может стоит двигаться дальше? и все же почитать ссылки которые дал?
Не нужно указывать.
Вы говорите о том что парадигма IS имеет место быть, с какой целью?
Доказать что родитель уже наследника? Или явить свою мощь?
Итог, - как обычно, - испорченный топик.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
16.10.2016, 18:23
Цитата Сообщение от Avazart Посмотреть сообщение
Наследник является Базовым классом, т.е должен иметь ровно тот же ф-ционал что и в родителе, и должна сохраняться работоспособность кода при подмене базового класса - наследником.
Проще говоря базовый класс - обобщение своих предков, обобщение ф-ционала с которым нужно будет работать без знания конкретных классов и особенностей их поведения.
Только при открытом наследовании.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//g++  4.9.3
 
#include <iostream>
 
struct A
{
    void foo() { std::cout << "foo from A" << std::endl; }
};
 
struct B : private A
{
};
 
int main()
{
    std::cout << "Hello, world!\n";
    B b;
    b.foo();
}
Code
1
2
3
4
5
6
7
8
source_file.cpp: In function ‘int main()’:
source_file.cpp:7:10: error: ‘void A::foo()’ is inaccessible
     void foo() { std::cout << "foo from A" << std::endl; }
          ^
source_file.cpp:18:11: error: within this context
     b.foo();
           ^
source_file.cpp:18:11: error: ‘A’ is not an accessible base of ‘B’
http://rextester.com/KTPDW65520
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 18:26
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вы говорите о том что парадигма IS имеет место быть, с какой целью?
Это нужно спрашивать у ТС, не я советовал наследование.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Доказать что родитель уже наследника? Или явить свою мощь?
Не понял глубины мысли.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Итог, - как обычно, - испорченный топик.
И не говорите ...

Добавлено через 36 секунд
Цитата Сообщение от GbaLog- Посмотреть сообщение
Только при открытом наследовании.
Естетственно, речь ведь в теме именно про него. (закрытое наследование это уже композиция)
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 18:48
Цитата Сообщение от Avazart Посмотреть сообщение
то нужно спрашивать у ТС, не я советовал наследование.
Спрашивать у ТС с какой целью Вы говорите? Логика неизменна.
Цитата Сообщение от GbaLog- Посмотреть сообщение
Только при открытом наследовании.
GbaLog-, парадигма child IS parent это верно всегда. Даже если доступ ограничен оно внутри есть и его можно достать (хакнув). Разговор не о том. Когда говорят что производный ЕСТЬ базовый имеют ввиду то, что в производном есть базовый. То есть производный имеет функционал базового. Но не имеют ввиду что что они тождественны. То есть, эта фраза верна в определённом контексте. Хотя во всех других она не верна. Например в контексте: ребёнок наследует от родителя это привело бы к: ребёнок наследует от себя (он же родитель).
В части расширения (а это контекст в котором мы тут страдаем сейчас)) тоже ложь. Нельзя не учесть родительского конструктора. Кроме того у базового класса вообще может не быть экземпляров (абстрактный если). Ну и VMT у него может не быть (насколько я понимаю).
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 18:51
Цитата Сообщение от IGPIGP Посмотреть сообщение
парадигма child IS parent это верно всегда.
Путаетесь в показаниях гражданин.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 18:52
Цитата Сообщение от Avazart Посмотреть сообщение
Путаетесь в показаниях гражданин.
До вашей попытки пролить свет истины, я общаясь с ТС говорил:
Цитата Сообщение от IGPIGP Посмотреть сообщение
Наследник - по определению - это нарощенный расширенный родитель.
К вам вопросов больше нет.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 19:00
Цитата Сообщение от IGPIGP Посмотреть сообщение
То есть производный имеет функционал базового. Но не имеют ввиду что что они тождественны.
Забалтывание, и передергивание.

"Is a" рассматривается с позиции кода который использует, например с позиции сцены/канвы на которой отображаются объекты(например фигуры). Для сцены всё фигуры: что круг что квадрат. Круг является фигурой, квадрат является фигурой (но стоит заметить обратное не справедливо)

Цитата Сообщение от IGPIGP Посмотреть сообщение
Спрашивать у ТС с какой целью Вы говорите? Логика неизменна.
Что бы понять что ему нужно, а не навязывать что попало.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Наследник - по определению - это нарощенный расширенный родитель.
И я вам указал на то что не стоит вводить в заблуждение.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 21:06
Цитата Сообщение от Avazart Посмотреть сообщение
И я вам указал
Вы для меня не указ, а учитывая манеры и того меньше. Заблуждение выказываете вы. Наследник это расширенный родитель. Там где эта фраза прозвучала она к месту. Да и вообще она верна. Нет наследников равных родителю или уже. Всегда они шире. Если уж совсем строго говорить. Минусовать можете сколько угодно. Но в теме вы засветились плохо. Моё мнение.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 21:17
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вы для меня не указ,
Можете пенится сколько хотите это ваша личная проблема.
Я лишь пытался помочь ТС, а на Вас и Вашу реакцию мне ....
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2016, 21:23
Цитата Сообщение от Avazart Посмотреть сообщение
Я лишь пытался помочь ТС, а на Вас и Вашу реакцию мне ....
Это ложь. Учить матчасть вы не его посылали. А когда ему (ТС) помогали вас где-то не было. И я смотрю, в не раскрученных темах вас и сейчас нет.
Реакция у меня нормальна. Если вы найдёте место где я вас (или ещё кого) послал учить матчасть, я посмотрю и наверное попрошу прощения, даже если и был там прав по сути. Вы же не правы и по сути. А я не посылаю вас учить хорошие манеры. И не пошлю. Не потому, что бесполезно. Просто, это не мой стиль.
Предлагаю это оставить.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.10.2016, 21:43
Цитата Сообщение от IGPIGP Посмотреть сообщение
Это ложь. Учить матчасть вы не его посылали. А когда ему (ТС) помогали вас где-то не было. И я смотрю, в не раскрученных темах вас и сейчас нет.
Реакция у меня нормальна. Если вы найдёте место где я вас (или ещё кого) послал учить матчасть, я посмотрю и наверное попрошу прощения, даже если и был там прав по сути. Вы же не правы и по сути. А я не посылаю вас учить хорошие манеры. И не пошлю. Не потому, что бесполезно. Просто, это не мой стиль.
Предлагаю это оставить.
Если бы я вежливо пригласил Вас сударь ознакомится с материалами по указанным ссылкам это повлияло бы на вашу реакцию? Или она была бы столь же невежественна стильной ? .
0
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
17.10.2016, 10:27  [ТС]
Не сорьтесь =)
В общем о наследовании прочел главу.

Сделал так
C++
1
2
3
4
5
6
7
8
9
10
class Pointers_2{
//.......
};
//Создаем указатели объектов в глобальной зоне видимости
Pointers_2 *Pointer_objects = new Pointers_2[7000];
 
//Дочерний класс объекта - типа "кнопка"
class Button_2 :public Pointers_2 {
//.......   
};
А вопрос такой, Дело в том что изначально в любом случае создается массив указателей, с запасом
C++
1
Pointers_2 *Pointer_objects = new Pointers_2[7000];
Этот массив с глобальной областью видимости.
И потом где-то в программе уже не с глобальной областью видимости (в моем случае в цикле отрисовки кадра) будет создан объект. Допустим кнопка.
Вопрос в том как нарастить дочерний объект на объекте родителе. Допустим базовый объект будет:
C++
1
Pointer_objects[1234]
И после наращения как удалить дочерний объект? Чтобы базовый остался и потом можно было точно также к этому базовому нарастить какой нибудь другой объект, другого дочернего класса (уже не класса кнопки).

Просто вы сказали что наращивать можно, покажите пожалуйста как. В книге которой я читал там создаются дочерние объекты от дочернего класса и используют методы родителя класса. А вот как урезать дочерний объект до родителя, или расширить до дочернего ни слова... Возможно это просто уже другая тема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2016, 10:27
Помогаю со студенческими работами здесь

Привести указатель на класс к указателю на void
Хай #pragma once #include &quot;list.h&quot;; #include &quot;Print.h&quot;; class Robot { public:

Как привести тип умного указателя к указателю на void?
Изучаем WinAPI, необходимо выполнить задание: Написать программу, которая в одном потоке сохраняет в векторе структуры PROCESSENTRY32,...

Описать функцию типа void с передачей параметров по ссылке или указателю POWERA234(A,B,C,D), вычисляющую вторую, третью
Описать функцию типа void с передачей параметров по ссылке или указателю POWERA234(A,B,C,D), вычисляющую вторую, третью и четвертую...

Доступ к указателю - элементу класса
Есть класс. В нем есть элемент-указатель (на голову списка). Можно ли получить как то этот указатель через объект класса, кроме как через...

Доступ к элементам CStringArray по указателю
Здравствуйте всем! Visual C++ 6, MFC. Проблемка такая: в функции создаю массив и заполняю, при выходе отдаю ссылку на массив. В основной...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru