Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/125: Рейтинг темы: голосов - 125, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 24

Снежинка Коха

25.11.2012, 22:07. Показов 25331. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать программу рисующую снежинку Коха (фракталы) есть работающая прога рисующая кривую коха, чтобы она рисовала снежинку нужно сделать 3 кривых в правильный треугольник и с каждой рисовать по чучуть, а я хз как это подплить, вод код кривой Коха:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit8.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm8 *Form8;
TCanvas *can;
int *size;
int X,Y;
int W7, H7;
int iteration;
 
class Tline
{
        public:
        int X1, Y1, X2, Y2;
        Tline* next;
};
 
class Tlines
{
        public:
        Tline *left;
        Tline *right;
        Tlines::Tlines()
        {
                left = NULL;
                right = NULL;
        }
        void add(Tline line)
        {
                Tline *newe;
                if (left==NULL)  //если еще нет ни одного элемента
                {
                        left = new Tline; //выделяем под него память
                        *left = line;      //заполняем его поля
                        (*left).next = NULL;
                        right=left;             //правая граница равна левой
                }
                else
                {
                        newe = new Tline; //выделяем память под новый элемент
                        *newe = line;      //заполняем его поля
                        (*newe).next=NULL;
                        (*right).next=newe;     //помещаем его в конец списка
                        right=newe;             //переносим указатель на конец списка на созданный элемент
                }
        }
        void print()
        {
                Tline* line;
                can->Brush->Color = clWhite;
                can->Rectangle(5, 5, W7, H7);
                if (left != NULL)
                {
                        line = left;
                        while (line != NULL)
                        {
                                can->MoveTo(line->X1, line->Y1);
                                can->LineTo(line->X2, line->Y2);
                                line = line->next;
                        }
                }
        }
        void move(int dx, int dy)
        {
                Tline* line;
                if (left != NULL)
                {
                        line = left;
                        while (line != NULL)
                        {
                                line->X1+=dx;
                                line->X2+=dx;
                                line->Y1+=dy;
                                line->Y2+=dy;
                                line = line->next;
                        }
                }
        }
        void clear()
        {
                Tline* line;
                Tline* temp;
                if (left != NULL)
                {
                        line = left;
                        while (line != NULL)
                        {
                                temp = line->next;
                                delete line;
                                line = temp;
                        }
                }
        };
};
 
Tlines ThisFigure;
 
void koha(int start, int max, Tlines);
//---------------------------------------------------------------------------
__fastcall TForm8::TForm8(TComponent* Owner)
        : TForm(Owner)
{
        size = new int;
 
        can = Form8->Canvas;
        *size = Form8->SpinSize->Value * 50;
        W7 = Form8->Width - Form8->Panel1->Width - 15;
        H7 = Form8->Height - 40;
        iteration = 0;
        X=Y=0;
 
        FractalBox->Items->Add("Кривая Коха");
        FractalBox->ItemIndex=0;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm8::Button1Click(TObject *Sender)
{
        Tline newline;
        Tlines first;
 
        iteration++;
        can->Brush->Color = clWhite;
        can->Rectangle(5, 5, W7, H7);
 
        lbl->Caption = "Итерация: " + AnsiString(iteration);
 
        newline.X1 = W7/2 - *size/2;
        newline.Y1 = H7/2;
        newline.X2 = W7/2 + *size - *size/2;
        newline.Y2 = H7/2;
 
        if (FractalBox->Text == "Кривая Коха")
        {
                first.add(newline);
                koha(1, iteration, first);
        }
 
        ThisFigure.move(X*10,Y*10);
        ThisFigure.print();
}
//---------------------------------------------------------------------------
 
void koha(int now, int max, Tlines figure)
{
        if (now == max)
        {
                ThisFigure = figure;
        }
        else
        {
                if (now < max)
                {
                        const int count = 4;
                        Tlines newFigure;
                        Tline line[count];
                        int lenx=0, leny=0;
 
                        Tline* oldline;
                        if (figure.left != NULL)
                        {
                                oldline = figure.left;
                                while (oldline != NULL)
                                {
                                        lenx = (oldline->X2 - oldline->X1);
                                        leny = (-oldline->Y2 + oldline->Y1);
 
                                        //первая линия
                                        line[0].X1 = oldline->X1;
                                        line[0].Y1 = oldline->Y1;
                                        line[0].X2 = oldline->X1 + lenx/3;
                                        line[0].Y2 = oldline->Y1 - leny/3;
 
                                        //вторая линия
                                        line[1].X1 = line[0].X2;
                                        line[1].Y1 = line[0].Y2;
                                        line[1].X2 = oldline->X1 + lenx/2 - leny/3;
                                        line[1].Y2 = oldline->Y1 - lenx/3 - leny/2;
 
                                        //третья линия
                                        line[2].X1 = line[1].X2;
                                        line[2].Y1 = line[1].Y2;
                                        line[2].X2 = oldline->X1 + 2*lenx/3;
                                        line[2].Y2 = oldline->Y2 + leny/3;
 
                                        //четвертая линия
                                        line[3].X1 = line[2].X2;
                                        line[3].Y1 = line[2].Y2;
                                        line[3].X2 = oldline->X2;
                                        line[3].Y2 = oldline->Y2;
 
                                        for (int i=0; i<count; i++)
                                        {
                                                newFigure.add(line[i]);
                                        }
 
                                        oldline = oldline->next;
                                }
                                koha(now + 1, max, newFigure);
                        }
                }
                else
                {
                        Form8->Caption = "Fail =(";
                }
                figure.clear();
        }
}
 
void __fastcall TForm8::Button2Click(TObject *Sender)
{
        iteration = 0;
        lbl->Caption = "Итерация: 0";
        can->Brush->Color = clWhite;
        can->Rectangle(5, 5, W7, H7);
}
//---------------------------------------------------------------------------
void __fastcall TForm8::SpinSizeChange(TObject *Sender)
{
        *size = Form8->SpinSize->Value * 50;
        iteration--;
        TForm8::Button1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm8::FormPaint(TObject *Sender)
{
        ThisFigure.print();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::ScrollXChange(TObject *Sender)
{
        X+=ScrollX->Position-50;
        ThisFigure.move((ScrollX->Position-50)*10, (ScrollY->Position-50)*10);
        ScrollX->Position=50;
        ThisFigure.print();
//        if (ScrollX->Position>50) {ScrollX->Position=50;   ShowMessage("!"); }
 
}
//---------------------------------------------------------------------------
void __fastcall TForm8::ScrollYChange(TObject *Sender)
{
        Y+=ScrollY->Position-50;
        ThisFigure.move((ScrollX->Position-50)*10, (ScrollY->Position-50)*10);
        ScrollY->Position=50;
        ThisFigure.print();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::FormResize(TObject *Sender)
{
        W7 = Form8->Width - Form8->Panel1->Width - 15;
        H7 = Form8->Height - 40;
        ThisFigure.print();        
}
//---------------------------------------------------------------------------
void __fastcall TForm8::FractalBoxChange(TObject *Sender)
{
        iteration = 0;
        lbl->Caption = "Итерация: 0";
}
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2012, 22:07
Ответы с готовыми решениями:

Снежинка алгоритмом Брезенхема
Подскажите плз как реализовать снежинку алгоритмом брезенхема

Построение Анти-Снежинки Коха (Снежинка Коха внутрь) на языке Pascal.
Нужно построить антиснежинку Коха. Имеется код построения обычной снежинки Коха через линии треугольника. Кто-нибудь может помочь? ...

Снежинка Коха
Используя графические возможности рекурсии, постройте на экране снежинку Коха

15
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.11.2012, 22:23
Линия коха строится так:
Берём единичный отрезок, разделяем на три равные части и заменяем средний интервал равносторонним треугольником без этого сегмента. В результате образуется ломаная, состоящая из четырех звеньев длины 1/3. На следующем шаге повторяем операцию для каждого из четырёх получившихся звеньев и т. д…

Три копии кривой Коха, построенные (остриями наружу) на сторонах правильного треугольника, образуют замкнутую кривую, называемую снежинкой Коха. Кривая Коха задается такой системой итерационных функций f1(z)=(1/3)*z; f2(z)=(1/3)*z+(2/3); f3(z)=(1/3)*z*(cos(pi/3)+i*sin(pi/3))+(1/3);
Сперто отсюда: Кривая Коха
1
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 24
25.11.2012, 22:27  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Сперто отсюда: Кривая Коха
Это я знаю пробовал даже строить линию снизу чтобы оно рисовал кривую коха вниз, но одновременно оно не рисует две кривых (уже не говоря о 3 ) оно рисует или одну или другую
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.11.2012, 22:39
а если не одновременно?
0
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 24
25.11.2012, 23:09  [ТС]
При прорисовке другой линии предыдущая пропадает и мне нужно бы чтобы оно рисовало как бы из одного угла в другой, т.е. слева направо или наоборот и т.д.

Добавлено через 23 минуты
Как я понимаю нужно изменить чтобы оно стандартно рисовало не линию прямую а треугольник а потом уже вокруг него начинало обрисовывать как оно сейчас рисует по линии, вот только как это сделать
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.11.2012, 01:12
Краткое руководство по работе с классом TCanvas для начинающих
При прорисовке другой линии предыдущая пропадает
При рисовании можно попробовать
C++
1
2
BeginUpdate()
EndUpdate()
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
26.11.2012, 01:13
Если у тебя есть координаты двух вершин правильного треугольника, координаты третьей вычислить довольно просто.
Вот маленький пример, так отрисуется правильный треугольник на канве TImage:
C++
1
2
3
4
5
6
7
    TCanvas *can = img1->Canvas;
    double x1 = 100, y1 = 100, x2 = 300, y2 = 150, angle = M_PI * 120 / 180.0;
    can->MoveTo( x1, y1 );
    can->LineTo( x2, y2 );
    can->LineTo( x2 + ( x2 - x1 ) *cos( angle ) - ( y2 - y1 ) *sin( angle ),
        y2 + ( x2 - x1 ) *sin( angle ) + ( y2 - y1 ) *cos( angle ) );
    can->LineTo( x1, y1 );
1
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 24
26.11.2012, 02:11  [ТС]
Добавил я треугольник, но проблема заключается вот в этой части кода (на мой взгляд):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 lenx = (oldline->X2 - oldline->X1);
                                        leny = (-oldline->Y2 + oldline->Y1);
 
                                        //первая линия
                                        line[0].X1 = oldline->X1;
                                        line[0].Y1 = oldline->Y1;
                                        line[0].X2 = oldline->X1 + lenx/3;
                                        line[0].Y2 = oldline->Y1 - leny/3;
 
                                        //вторая линия
                                        line[1].X1 = line[0].X2;
                                        line[1].Y1 = line[0].Y2;
                                        line[1].X2 = oldline->X1 + lenx/2 - leny/3;
                                        line[1].Y2 = oldline->Y1 - lenx/3 - leny/2;
На сколько я понимаю нужно добавить еще некотое lenz но что в нем писать и что писать во время прорисовки линий не знаю, пробовал писать что то похожее, но снежинка не получается, к тому же сбивается и кривая КОха
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
26.11.2012, 02:54
А вот так отрисуется снежинка в первой итерации, код легко расширить на остальные итерации или другие виды правильных многоугольников:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    TCanvas *can = img1->Canvas;
    double x0[3], y0[3], x[12], y[12], cos_a = cos( M_PI * 120 / 180.0 ), sin_a = sin( M_PI * 120 / 180.0 );
    x0[0] = 100;
    y0[0] = 100;
    x0[1] = 300;
    y0[1] = 150;
    x0[2] = x0[1] + ( x0[1] - x0[0] ) * cos_a - ( y0[1] - y0[0] ) * sin_a;
    y0[2] = y0[1] + ( x0[1] - x0[0] ) * sin_a + ( y0[1] - y0[0] ) * cos_a;
    for ( int i = 0, k = 0, x_tmp, y_tmp; i < 12; i += 4, ++k ) {
        x_tmp = k == 12 / 4 - 1 ? x0[0] : x0[k + 1];
        y_tmp = k == 12 / 4 - 1 ? y0[0] : y0[k + 1];
        x[i] = x0[k] + ( x_tmp - x0[k] ) / 3;
        y[i] = y0[k] + ( y_tmp - y0[k] ) / 3;
        x[i + 1] = x[i] + ( x[i] - ( x[i + 2] = x0[k] + ( x_tmp - x0[k] ) * 2 / 3 ) ) * cos_a -
                       ( y[i] - ( y[i + 2] = y0[k] + ( y_tmp - y0[k] ) * 2 / 3 ) ) * sin_a;
        y[i + 1] = y[i] + ( x[i] - x[i + 2] ) * sin_a + ( y[i] - y[i + 2] ) * cos_a;
        x[i + 3] = x_tmp;
        y[i + 3] = y_tmp;
    }
    can->MoveTo( x0[0], y0[0] );
    for ( int i = 0; i < 12; ++i ) {
        can->LineTo( x[i], y[i] );
    }
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.11.2012, 21:07
Лучший ответ Сообщение было отмечено как решение

Решение

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <vector>
#include <list>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <Math.hpp>
//----------------------------------------------------------------------------
typedef std::list<TPoint>::iterator PIter;
typedef std::list<std::pair<PIter,PIter> >::iterator LIter;
//---------------------------------------------------------------------------
void fractal(std::list<TPoint>& points,PIter a,PIter b)
{
    using namespace std;
 
    TPoint C1,D,C2;
 
    int k= (a->x > b->x)? -1: 1;
    float alpha= atan((double)(b->y - a->y)/(b->x - a->x) );
    float l= sqrt(pow(b->y - a->y, 2.)+pow(b->x - a->x,2.));
    float d= l/3.;
    float betta= DegToRad(60.);
 
    C1.x= a->x+ k*d*cos(alpha);
    C1.y= a->y+ k*d*sin(alpha);
 
    C2.x= C1.x+ k*d*cos(alpha);
    C2.y= C1.y+ k*d*sin(alpha);
 
    D.x= C1.x+ k*d*cos(alpha+betta);
    D.y= C1.y+ k*d*sin(alpha+betta);
 
    points.insert(b,C1);
    points.insert(b,D);
    points.insert(b,C2);
}
//---------------------------------------------------------------------------
void koha(std::list<TPoint>& points, size_t level=1)
{
 std::list<std::pair<PIter,PIter> > lines;
 
 PIter first = points.begin();
 PIter second= points.begin();
 PIter last  = points.end();
 
 for(++second; second!= last; ++first,++second)
                                lines.push_back( std::pair<PIter,PIter>(first,second) );
 
 for(LIter l= lines.begin(); l!=lines.end(); ++l)
                                fractal(points,l->first,l->second);
 
 if(--level) koha(points,level); // рекурсия
}
//---------------------------------------------------------------------------
// Декартовые координаты в координаты экрана
void to_src(TPoint &obj) { obj.y= 400-obj.y; obj.x= 200+obj.x;}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
using namespace std;
 
vector<TPoint> vP;
 
list<TPoint> lP;
// Задаем фигуру - треугольник
lP.push_back(TPoint(0,0));
lP.push_back(TPoint(150,300));
lP.push_back(TPoint(300,0));
lP.push_back(TPoint(0,0));
 
koha(lP,4);// Фрактал 4-го порядка
 
copy(lP.begin(),lP.end(),back_inserter(vP) ); // копирование в вектор
 
for_each(vP.begin(),vP.end(),to_src); //преобразовываем координаты
 
Image1->Canvas->Polyline(&vP[0],vP.size()-1 ); // рисуем
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
Image1->Picture->Bitmap->SetSize(Width,Height);
}
//---------------------------------------------------------------------------
Миниатюры
Снежинка Коха  
4
26.11.2012, 21:49

Не по теме:

Ну, вот... не успел ТС и голову поломать!:D

0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.11.2012, 22:15
Исходник с подправленным кодом.
Вложения
Тип файла: rar Кривая Коха.rar (282.1 Кб, 510 просмотров)
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.11.2012, 22:28
Цитата Сообщение от BRcr Посмотреть сообщение
Ну, вот... не успел ТС и голову поломать!
Не успел сломать на ООП, а я ему STL

Добавлено через 7 минут
Хотя не у него там деревья... ( что возможно больше подходит для этой задачи )
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
26.11.2012, 22:45
Сдается мне, описание классов просто является частью задания ТС, деревьев - вероятно, тоже. А чего больше подходит, даже и не знаю - все подходит. Это ж предельно просто, есть вершины, по ним выводим новые вершины с преобразованием прямых в кривые Коха, да и рисуем это дело.
0
0 / 0 / 0
Регистрация: 21.05.2021
Сообщений: 1
21.05.2021, 10:11
А как на Си написать снежинку Коха?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33405 / 21515 / 8236
Регистрация: 22.10.2011
Сообщений: 36,916
Записей в блоге: 12
21.05.2021, 10:13
Си не имеет встроенных средств для отображения графики, так что как минимум придется подумать, какую графическую библиотеку будете использовать. Ну, и тему создать в соответствующем разделе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.05.2021, 10:13
Помогаю со студенческими работами здесь

Снежинка Коха
Задание заключается в том, чтобы построить снежинку с помощью рекурсии. Есть замечательная программа на Паскале. Вот код program...

Снежинка Коха
Задание заключается в том, чтобы построить снежинку с помощью рекурсии. Есть замечательная программа на Паскале. Вот код program...

Снежинка Коха
Привет Всем ! В общем, у меня есть программа, которая рисует кривую Коха........Мне нужно построить снежинку Коха......там в принципе тоже...

Снежинка Коха
Здравствуйте. Помогите, пожалуйста. Напишите программу для изображения снежинки. В качестве образцов используйте снежинку Коха.

снежинка коха
Нужно в Mathematica сделать снежинку коха. Получилось только это: points = {{1.0, 0.0}}; koch := Join.#/3 + {1/3, 0}) &amp;...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru