Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
235 / 11 / 0
Регистрация: 03.09.2018
Сообщений: 88

От куда эта куча ошибок?

06.06.2019, 14:29. Показов 1078. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Открываю проект из архива, который два дня назад работал (!)
Сейчас же снова куча ошибок... Сил уже нет с ним,
Кликните здесь для просмотра всего текста
Код
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
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
// первоисточник https://sites.google.com/site/raznyeurokipoinformatiki/home/opengl-s/zagruzka-formata-obj
//
 
//#pragma hdrstop
//#pragma argsused
#include <tchar.h>
#include <stdio.h>
#include <Windows.h>
 
/* функции загрузки файлов**********************************************/
 //для установки консоль на паузу
#include <conio.h>
//вывод данных в консоль
#include <iostream>
//функции работы с файлом
#include <fstream>
//функции работы с файлом
#include <sstream>
//функции работы со строками
#include <string.h>
#include <cstring>
 
using namespace std;
 
//переменная для чтения строк из файла
string line;
//переменная ссылка на читаемый файл файл
fstream My_File_obj;
//точки из которых будет состоять обьект
float* coords;
int* Index;
char* ff;
int  coords_index = 0, Fase_index = 0; //номер текущей прочитанной коордианты точки
 
struct coord
{
    float x;
    float y;
    float z;
};
struct polygons
{
    coord* point; // 1 точки
};
//точка
coord* MyMass;
//полигоны
polygons* models;
//количество точек
int point = 1;
//собераем координаты в индексы
int p = 0;
 
//собираем обьект в единую структуру
void Compare(float* Coords, int* indexs, int count_fase, int count_point)
{
    //задаем массив для точек
    MyMass = new  coord[count_point / 3];
    //(coord*) malloc (count_point/3);
  //задаем массив для полигонов
    models = new polygons[count_fase / 4];
    //(polygons*) malloc (count_fase/4);
 
  //перебираем точки и присваиваем координаты каждой с индеса 1
    for (int i = 0; i < count_point; i += 3)
    {
        MyMass[point].x = Coords[i + 0]; //координата Х
        MyMass[point].y = Coords[i + 1]; //координата Y
        MyMass[point].z = Coords[i + 2]; //координата Z
        point++;
    }
    p = 0;
    //перебираем ребра и присваиваем координаты в зависимости от индекса точки
    for (int f = 0; f < count_fase; f += 4)
    {
        models[p].point = new coord[4];
        for (int s = 0; s < 4; s++)
        {
            models[p].point[s] = MyMass[indexs[f + s]];
            cout << "\n -7- " + s;
        }
        /*
         models[p].point[1]= MyMass[indexs[f+1]];
         models[p].point[2]= MyMass[indexs[f+2]];
         models[p].point[3]= MyMass[indexs[f+3]];  */    
        p++;
    }
}
 
//читаем файл
void Rad_file_obj() //(char* (name_file)
{
    //char* name_file = "123.obj";
    //std::ifstream ifs("123.obj");  
    My_File_obj.open("12345.obj");   //(name_file);
    //открываем файл
    if (My_File_obj.is_open())
    { //если открыли, будем читать данные из файла
        cout << '\n' << "-file open";
        //перечитывем файл до конца
        My_File_obj.seekg(0, ios::end);
        //получаем количество считанных из файла символов
        int  File_Size = My_File_obj.tellg();
        //задаем размер временного массива для координат
        float*   Tmp_Coords = (float*)malloc(File_Size);
        //задаем размер временного массива индексов точек поверхности
        int*     Tmp_faseArray = (int*)malloc(File_Size);
        //устанавливаем в 0 элемент массива
        coords_index = 0;
        Fase_index = 0;
        //устанавливаем курсор в начало файла
        My_File_obj.seekg(0, ios::beg);
 
        int countpoint = 0;
        int countfase = 0;
        //читаем файл до конца
        cout << "\n -1- ";
        while (!My_File_obj.eof())
        {
            //читаем строку текста из файла
            getline(My_File_obj, line);
            cout << "\n -2- "+ line;
            //проверяем первые два символа строки
            if ((line.c_str()[0] == 'v') && (line.c_str()[1] == ' '))
            {
                //обнуляем 1 символ
                line[0] = ' ';
                //обнуляем 1 символ
                line[1] = ' ';
                cout << " -3- " + line;
                //чтобы функция правельно разбирала координаты обнуляем начало строки
                sscanf_s(line.c_str(), "%f %f %f",          
                    &Tmp_Coords[coords_index + 0], //координата X
                    &Tmp_Coords[coords_index + 1], //координата Y
                    &Tmp_Coords[coords_index + 2]  //координата Z
                );
                cout << "\n -4- " + line;
                //сдвигаем индекс на 3 так как 3 координаты
                coords_index += 3;
                //расчет точек
                countpoint++;
            }
            //проверяем не нашли ли грань
            if ((line.c_str()[0] == 'f') && (line.c_str()[1] == ' '))
            {
                //обнуляем 1 символ
                line[0] = ' '; line[1] = ' ';
                //получаем параметры поверхности
                //     v1       v2     v3      v3
                int tmp_point[4], tmp_normal[4], tmp_texture[4];
                sscanf_s(line.c_str(), "%i//%i %i//%i %i//%i %i//%i",
                    // номер точки  номер нормали   номер текстуры
                    //  &tmp_point[0], &tmp_normal[0], &tmp_texture[0]  //p1
                    //, &tmp_point[1], &tmp_normal[1], &tmp_texture[1]  //p2
                    //, &tmp_point[2], &tmp_normal[2], &tmp_texture[2]  //p3
                    //, &tmp_point[3], &tmp_normal[3], &tmp_texture[3]  //p4
                      &tmp_point[0], &tmp_normal[0]  //p1
                    , &tmp_point[1], &tmp_normal[1]  //p2
                    , &tmp_point[2], &tmp_normal[2]  //p3
                    , &tmp_point[3], &tmp_normal[3]  //p4
                );
                //сохраняем индексы в массив
                Tmp_faseArray[Fase_index + 0] = tmp_point[0]; //сохраняем первый индекс точки
                Tmp_faseArray[Fase_index + 1] = tmp_point[1]; //сохраняем второй индекс точки
                Tmp_faseArray[Fase_index + 2] = tmp_point[2]; //сохраняем третий индекс точки
                Tmp_faseArray[Fase_index + 3] = tmp_point[3]; //сохраняем четвертый индекс точки
                               
                Fase_index += 4;
                countfase++;
            }
        }
        //определяем параметры полигонов для рисования
        Compare(Tmp_Coords, Tmp_faseArray, Fase_index, coords_index);
        cout << "\n -5- ";
    }
    else
    {   //если не открыли, не будем читать
        cout << '\n' << "file not open";
    }
 
 
}
/*реализация OpenGL********************************************************/
#include  "glut.h"
#include <windows.h>
GLfloat  tx = 0;            // Сдвиг по оси X
GLfloat     ty = 0;         // Сдвиг по оси Y
GLfloat     tz = 0;         // Сдвиг по оси Z
GLfloat  rx = 0;            // Угол поворота сцены вокруг оси X
GLfloat  ry = 0;            // Угол поворота сцены вокруг оси Y
GLint     tt = 0;           // Активная плоскость: 0 - XY, 1 - XZ
 
int mx = 0, my = 0;        // Координаты мыши
bool ldown = false,        // Нажата левая клавиша мыши?
     rdown = false;            // Нажата правая клавиша мыши?
 
float sizeK = 1;
 
void Draw_Obj()
{
    /*
     glEnable(GL_ALPHA_TEST);
     glEnable(GL_BLEND);
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
     glEnable(GL_LIGHTING);
     glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
     glEnable(GL_NORMALIZE);
     float light0_diffuse[] = {1, 1, 1};
     float light0_direction[] = {-1, -1, 0, 100};
     glEnable(GL_LIGHT0);
     glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
     glLightfv(GL_LIGHT0, GL_POSITION, light0_direction);
                                                          */
    for (int i = 0; i < p; i++)
    {
        //рисуем каркас из линий
        //GL_POLYGON  GL_POINTS   GL_LINES GL_POLYGON GL_QUADS
        glColor3f(0, 0, 0);
        glBegin(GL_LINE_LOOP);
        for (int s = 0; s < 4; s++)
            glVertex3f(models[i].point[s].x, models[i].point[s].y, models[i].point[s].z);
        glEnd();
        //рисуем полигоны
        glColor3f(0, 1, 0);
        glBegin(GL_POLYGON);
        for (int s = 0; s < 4; s++)
            glVertex3f(models[i].point[s].x, models[i].point[s].y, models[i].point[s].z);
        glEnd();
    }
}
 
void MouseMotion(int x, int y)    //Перемешение мыши
{
    if (ldown)        // Левая кнопка
    {
        rx += 0.5*(y - my);    //Изменение угола поворота
        ry += 0.5*(x - mx);
        mx = x;
        my = y;
        //    glutPostRedisplay();    //Перерисовать экран
    }
 
    if (rdown)    //Правая
    {
        tx += 0.01*(x - mx);    //Перемещение вдоль активной плоскости
        if (tt)
            tz += 0.01*(y - my);
        else
            ty += 0.01*(my - y);
        mx = x;
        my = y;
    }
    cout << "\n X=" << tx << " Y= " << ty << " Z=" << tz;
}
 
 
void Mouse(int button, int state, int x, int y)        //Обработка щелчков мыши
{
    cout << "\nbutton " << button << "state" << state;
 
    if (button == GLUT_LEFT_BUTTON)        //Левая кнопка
    {
        switch (state)
        {
        case GLUT_DOWN:        //Если нажата
            ldown = true;        //установить флаг
            mx = x;            //Запомнить координаты
            my = y;
            break;
        case GLUT_UP:
            ldown = false;
            break;
        }
    }
    if (button == GLUT_RIGHT_BUTTON)    //Правая кнопка
    {
        switch (state)
        {
        case GLUT_DOWN:
            rdown = true;
            mx = x;
            my = y;
            break;
        case GLUT_UP:
            rdown = false;
            break;
        }
    }
}
 
 
void Display()
{
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_COLOR_MATERIAL);
 
    glColor3f(0.1, 0.7, 0.2);
    glClearColor(0.5, 0.5, 0.75, 1);
 
    //    glClearColor(0.5f, 0.5f, 0.5f, 1);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
    glPushMatrix();
    glTranslatef(tx, ty, tz);        //Перемещение и поворт объекта
    glRotatef(rx, 1, 0, 0);
    glRotatef(ry, 0, 1, 0);
    glScalef(sizeK, sizeK, sizeK);        //Перемещение и поворт объекта
    Draw_Obj();            //Вывод объекта на экран
    glPopMatrix();
    glutSwapBuffers();
}
 
void Keyboard(unsigned char key, int x, int y)            //Обработка сообщений от клавиатуры
{
    switch (key)
    {
    case VK_ESCAPE:        //Если нажата клавиша ESC - выход
        exit(0);
        break;
    case '+':        //Если нажата клавиша ESC - выход
        sizeK += 0.1f;
        break;
    case '-':        //Если нажата клавиша ESC - выход
        sizeK -= 0.1f;
        break;
    }
    if (sizeK < 0)
        sizeK = 0;
}
 
 
 
void IDLE()
{
    glutPostRedisplay();
}
 
void InitOpenGL(int argc, _TCHAR* argv[])
{
    //включаем потдержку OpenGL в приложении
    glutInit(&argc, argv);
    //задаем параметры рисования картинки
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    //устанавливаем размеры окна для картинки
    glutInitWindowSize(640, 480);
    //устанавливаем позицию окна
    glutInitWindowPosition(100, 100);
 
    cout << " !!!!!!!!!!! ";
    //создаем окно и указываем ему заголовок
    glutCreateWindow("Fist up OBJ");
    //вызываем функцию рисования окна
    glutDisplayFunc(Display);
    //обработка нажатия клавиш
    glutKeyboardFunc(Keyboard);
 
    glutMouseFunc(Mouse);
 
    glutMotionFunc(MouseMotion);
 
    glutIdleFunc(IDLE);
    //запускаем бесконечный цикл работы приложения
    glutMainLoop();
}
 
/**************************************************************************/
int main(int argc, _TCHAR* argv[])
{
    //загружаем файл
    cout << "Loading 123456.obj ";
    //ff = "123.obj";
    //Rad_file_obj("123.obj");
    Rad_file_obj();
    //загружаем граяический примитив со список отображения
 
    //запускаем OpenGL
    InitOpenGL(argc, argv);
    return 0;
}

Что это за ошибки??? библиотеки все подключены и перепроверены трижды.
День сурка какой-то, честное слово...
Миниатюры
От куда эта куча ошибок?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2019, 14:29
Ответы с готовыми решениями:

Куча ошибок при первом проекте Hello world!
Я понимаю, что это может показаться бредом, но я у меня глаз начинает дергаться уже. На всех сайтах пишут давайте мол сделаем первый проект...

Куча ошибок
При билде игры, выскакивает куча ошибок: UnityEditor.BuildPlayerWindow+BuildMethodException: 69 errors at...

Куча ошибок
Стала очень часто появляться ошибка BlueScreen. Ошибки разные, и появляются если играю в игр ну и редко при просмотре фильмов. Играть стало...

7
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,118
06.06.2019, 14:41
Похоже, что либы от OpenGL не подключены. Предпоследняя строка в списке ошибок подозрительная. Возможно вы пытаетесь скомпилировать проект под 64х битную платформу, но подключаете 32х битные библиотеки от OpenGL.
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.06.2019, 14:52
Цитата Сообщение от NadinKaa Посмотреть сообщение
библиотеки все подключены и перепроверены трижды.
Судя по ошибкам с настройками проблема. Библиотеки x86 нужно подключать к платформе x86, а x64 - к x64.

Я использую FreeGLUT вместо GLUT, если нужно помочь начинающим, потому что GLUT очень давно заброшен и не работает с x64. FreeGLUT тоже заброшен, но не так давно. Эти две библиотеки - это практически одно и тоже. В FreeGLUT вроде что-то добавили.

Покажу, как я подключаю. Допустим, я создал новое решение "Win32 Console". В решении я создаю папку Libs, куда копирую нужные мне библиотеки (.lib, .dll) и папки с include.

Выставляю, такие настройки:

Settings

1.
Configuration: All Configurations
Platforms: All Platforms

C/C++ -> Genaral -> Additional Include Directories:
$(SolutionDir)Libs\freeglut-3.0.0-2\include

Linker -> Input -> Additional Dependencies
freeglut.lib

2.
Configuration: All Configurations
Platforms: Win32

Linker -> General -> Additional Library Directories:
$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win32

Build Events -> Post-Build Event
xcopy /y /d "$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win32\freeglut.dll" "$(OutDir)"

3.
Configuration: All Configurations
Platforms: x64

Linker -> General -> Additional Library Directories:
$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win64

Build Events -> Post-Build Event
xcopy /y /d "$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win64\freeglut.dll" "$(OutDir)"


Я скопировал код из первоисточника по ссылке из вашего кода. Он компилируется. Можете скачать и сразу запустить без каких-либо настроек, всё настроено: LoadinObjFormat.zip

Если у вас не VS 2015, то измените в моём проекте Platform Toolset на вашу версию VS здесь:

1
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.06.2019, 22:22
Цитата Сообщение от NadinKaa Посмотреть сообщение
// первоисточник https://sites.google.com/site/... ormata-obj
//
Чтобы проект автора этой статьи запустился, нужно перед экспортом 3D модели из редактора сделать UV развёртку, чтобы в файле были текстурные координаты, иначе его код падает. В Blender'е достаточно выбрать тип развёртки "Smart UV Project".

LoadinObjFormat.zip

1
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
09.06.2019, 00:54
Цитата Сообщение от NadinKaa Посмотреть сообщение
// первоисточник https://sites.google.com/site/... ormata-obj
//
В программе автора статьи происходит работа с массивом MyMass[] за пределами массива. Если вы просто пройдёте код, который работает с массивом MyMass[], по шагам, то вы увидите этот момент. Для простоты загрузите плоскость:

Plane.obj

# Blender v2.79 (sub 0) OBJ File: ''
# www.blender.org
v -1.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v -1.000000 0.000000 -1.000000
v 1.000000 0.000000 -1.000000
vt 0.000100 0.000100
vt 0.999900 0.000100
vt 0.999900 0.999900
vt 0.000100 0.999900
vn 0.0000 1.0000 0.0000
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
Добавлено через 26 минут

Не по теме:

Хотел автору статьи написать через обратную связь на его сайте, но вдруг на фейсбуке на его странице узнал, что он умер больше двух лет назад.

0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
09.06.2019, 10:45
Решение проблемы с выходом за границы массива MyMass[].

Заменить эти строки:

C++
1
2
int point = 1;
models[p].point[s] = MyMass[indexs[f + s]];
На эти:

C++
1
2
int point = 0;
models[p].point[s] = MyMass[indexs[f + s] - 1];
1
235 / 11 / 0
Регистрация: 03.09.2018
Сообщений: 88
10.06.2019, 09:44  [ТС]
8Observer8, спасибо!
подумала-подумала, что все же к черту этот код, надо всё же самой с нуля разбираться, сложные фигуры все равное не идут у меня ((( а нужно нечто универсальное
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
10.06.2019, 11:11
Я считаю, что нельзя бросать эту программу. Да, в ней есть минусы, но есть и плюсы. Есть, то что непременно поднимет вас на несколько ступеней выше. Я работаю C#, но стараюсь время от времени разбираться в C++ программах. Разбираться в чужом коде крайне полезно. Полезно разбираться как в коде человека выше вас по уровню, так и в чём-то ниже. Бывает, что код в целом плохой, но идеи проскакивают интересные и здравые. А самое главное, что можно подмечать, что-то полезное и новое, а также опираясь на логику и опыт можно увидеть логические ошибки в чужой программе и пути, как улучшить программу. Да, бывает очень сложно пересилить себя, чтобы открыть и начать разбираться и продолжительно удерживать внимание, а потом возвращаться к коду снова и снова с новыми силами. Но нужно осознавать, что эти усилия и выходы из зоны комфорта не пройдут даром. Загружайте плоскость в программу, выполняйте её по шагам, читайте, что означаете та или иная команда C++ и OpenGL. Лучше сразу приучать себя читать документацию на английском. Например, наберите в поисковике: malloc. В первый строках поиска вы увидите ссылку: malloc - C++ Reference - cplusplus.com. Читайте документацию, смотрите пример в документации.

Добавлено через 1 минуту
Мне нравится эта документация по OpenGL: http://docs.gl/
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2019, 11:11
Помогаю со студенческими работами здесь

Куча непонятных ошибок
Вот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; int main() { std::ifstream ifs(&quot;test.txt&quot;,...

Куча непонятных ошибок
Всем привет. Ребят, объясните мне пожалуйста, что за ошибки выдает, как с ними бороться? Когда использовал 6ю яву всё было отлично, но...

OscarLib куча ошибок
Какие-то ошибки с библиотекой OscarLib, немогу понять в чем дело...что-то криво подключается? using csammisrun.OscarLib; ........ ...

Куча ошибок. Как исправить?
Только начал разбираться с наследованием и виртуальными функциями. Поэтому не отказался бы от некоторой помощи. Вот мой код, который...

огромная куча ошибок в программе
программа - тест по истории. первая форма - регистрационная там поля для ввода фио и класса. с кнопкой начать тест данные из полей...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru