Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/225: Рейтинг темы: голосов - 225, средняя оценка - 4.73
8 / 8 / 0
Регистрация: 17.10.2012
Сообщений: 58

Как легко обновить свойства элемента?

28.08.2013, 17:48. Показов 46537. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
В инфоблоке 1 появилось новое свойство, тип - привязка к элементам инфоблока 2. Для всех существующих элементов в инфоблоке 1 надо заполнить это свойство, причем к чему конкретно будем привязывать - зависит от текущего набора свойств.

В чём сложность?
Открываем документацию по апи CIBlockElement::Update и внимательно читаем, как обновляются свойства у элементов.
Если массив PROPERTY_VALUES задан, то он должен содержать полный набор значений свойств для данного элемента, т.е. если в нем будет отсутствовать одно из свойств, то все его значения для данного элемента будут удалены.
В чём вопрос?
Мне необходимо обновить всего 1 свойства, остальные оставить прежними. АПИ вынуждает меня составлять список всех свойств элемента, иначе неуказанные будут удалены. А это сделать не так просто, ибо значение свойства (VALUE) зависит от типа свойства, иногда нужен текст, иногда ID варианта значения. Иногда может ещё что-то, всего я не знаю.
Как просто обновить у элемента 1 свойство не трогая остальные? Может есть у кого-то готовое решение?

Добавлено через 12 часов 50 минут
В общем, мне повезло, что элементов около трёхсот.
Создал обработчик события OnBeforeIBlockElementUpdate , написал его, чтобы он изменял нужное свойство.
Зашел в админку, выбрал все элементы, нажал редактировать и применил.
Вуаля. Нужное свойство мы везде проставили, остальные свойства остались целы.

PHP
1
2
3
4
5
6
7
8
/bitrix/php_interface/init.php
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "setProperty" );
function setProperty(&$arFields){
    if($arFields['IBLOCK_ID'] == X){        
               // do magic
    }
 
}
Прелесть в том, что массив $arFields имеет все поля элемента и свойства в том числе, можно изменить этот массив и эти изменения пойдут в базу, без каких либо дополнительных вызовов апи.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2013, 17:48
Ответы с готовыми решениями:

Как обновить View при изменении свойства в ViewModel MVVM
View: <DataGrid Grid.Row="0" ItemsSource="{Binding SaleItemData}" AutoGenerateColumns="False" CanUserAddRows="False"> ...

Как взаимодействовать со значением свойства пользовательского элемента в коде этого пользовательского элемента?
Здравствуйте. Я сделал пользовательский элемент, попытался создать в нём свойство и затем обработать его значение внутри этого элемента. Не...

Как получить свойства вновь добавленного элемента
Здравствуйте. Подскажите пожалуйста как правильно получить свойства вновь добавленного элемента в данном примере нужно узнать высоту...

17
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
28.08.2013, 18:37
оригинальное решение, мне понравилось, жаль только его нельзя использовать когда есть необходимость через API менять в компонентах - приходится извращаться через setpropertyvaluecode.php и иже с ним
0
694 / 534 / 40
Регистрация: 22.06.2009
Сообщений: 1,293
28.08.2013, 20:31
Цитата Сообщение от tgarl Посмотреть сообщение
приходится извращаться через setpropertyvaluecode.php и иже с ним
Еще можно:
http://dev.1c-bitrix.ru/api_he... update.php
В $arFields['PROPERTY_VALUES'] передать значения свойств.
0
8 / 8 / 0
Регистрация: 17.10.2012
Сообщений: 58
28.08.2013, 22:05  [ТС]
Цитата Сообщение от Alorian Посмотреть сообщение
Еще можно:
http://dev.1c-bitrix.ru/api_he... update.php
В $arFields['PROPERTY_VALUES'] передать значения свойств.
Про это я и говорил, что здесь необходимо передать все свойства, иначе они будут удалены. А мне необходимо было изменить 1 свойства. Дело было ночью и я почему-то не нашел в апи нужного метода, идея реализации в 1ом посте.
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
28.08.2013, 23:15
Цитата Сообщение от Alorian Посмотреть сообщение
Еще можно:
http://dev.1c-bitrix.ru/api_he... update.php
В $arFields['PROPERTY_VALUES'] передать значения свойств.
этим способом множественное значение замучаешься обновлять - сначала нужно получить все текущие, затем к ним дописывать новое, а после полученный масив уже заливать в обновление.
тот который я указал приблизительно такой же, но при этом не затрагивает другие свойства. а есть еще способ через CIBlockElement::SetPropertyValuesEx - Функция сохраняет значения всех свойств элемента информационного блока. В отличие от SetPropertyValues может не содержать полный набор значений - те.е просто дописывает новое значение к тем которые уже есть
2
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 12:23
Подскажите еще, вот такая проблема появилась, нужно обновить только дату активности элемента. ЩАс на сайте она обновляется, но не записывается, т.е при обновлении страницы все обратно возвращается.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
include($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
define("NO_KEEP_STATISTIC", true);
define("NO_AGENT_STATISTIC", true);
if(CModule::IncludeModule("iblock")){ 
 
/*if (isset($_GET['ID']) && intval($_GET['ID'])):*/
    $newDate =ConvertTimeStamp(time(), "FULL");
    $elProps = array(
            "MODIFIED_BY"       => $USER->GetID(),       
            "IBLOCK_ID"         => 3,
            "ACTIVE_FROM"       => $newDate,
            "ACTIVE"            => "Y",
        );
    #$newEl = new CIBlockElement;
    
    $newEl = CIBlockElement::SetPropertyValuesEx($_REQUEST["id"],3,array("ACTIVE_FROM" => $newDate));
    #$res = $newEl->Update($_GET['ID'], $elProps);
    echo $newDate;
    echo ($newEl->LAST_ERROR);
    
/*endif;*/
die();
}
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
13.05.2016, 14:02
Для начала по начальному вопросу этой темы. Вы конечно придумали решение, но оно, что называется, через тернии. Есть два специальных метода для установки значений свойств элемента инфоблока (не полей - для ACTIVE_DATE этот метод не пойдет)

CIBlockElement::SetPropertyValues - этому методу надо передавать значения всех свойств (не указанные "затрет")

CIBlockElement::SetPropertyValuesEx - этому можно передавать тоько те, что необходимо изменить.

Цитата Сообщение от helloMatz Посмотреть сообщение
Прелесть в том, что массив $arFields имеет все поля элемента и свойства в том числе, можно изменить этот массив и эти изменения пойдут в базу, без каких либо дополнительных вызовов апи.
Вы уверены что все? (я правда сам не знаю наверняка, но думаю что в случае применения CIBlockElement::SetPropertyValuesEx это будет не так, а данный метод можeт использоваться где то еще, кроме вашего кода)

Добавлено через 2 минуты
PHP
1
$newEl = CIBlockElement::SetPropertyValuesEx($_REQUEST["id"],3,array("ACTIVE_FROM" => $newDate));
Не прокатит. ACTIVE_FROM это не свойство, а поле!

Добавлено через 5 минут
1. Зачем вы убрали проверку - можно просто поменять на $_REQUEST (вместо $_GET)
Вы бы почитали об этих переменных. Вопрос не сложный для понимания и не хотелось бы здесь много слов писать.

2. Дату начала активности обновлять именно так. Я, даже, специально только что проверил. Этот код ни чего не "затирает". Почему вы решили что он затирает?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
?
include($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
define("NO_KEEP_STATISTIC", true);
define("NO_AGENT_STATISTIC", true);
if(CModule::IncludeModule("iblock")){ 
 
if (isset($_GET['ID']) && intval($_GET['ID'])):
    $newDate =ConvertTimeStamp(time(), "FULL");
    $elProps = array(
            "MODIFIED_BY"       => $USER->GetID(),       
            "IBLOCK_ID"         => 3,
            "ACTIVE_FROM"       => $newDate,
            "ACTIVE"            => "Y",
        );
   $newEl = new CIBlockElement;
    $res = $newEl->Update($_GET['ID'], $elProps);
    echo $newDate;    
endif;
die();
}
0
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 14:13
У меня у элемента есть еще два свойства (тип список, число, число) вот они скидываются почему-то, а картинки и текст с заголовком не скидываются
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
13.05.2016, 14:15
Цитата Сообщение от helloMatz Посмотреть сообщение
Прелесть в том, что массив $arFields имеет все поля элемента и свойства в том числе
Специально поставил эксперимент:
Обработчик
PHP
1
2
3
4
5
6
7
8
9
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("MyClass", "OnBeforeIBlockElementUpdateHandler"));
class MyClass
{
    function OnBeforeIBlockElementUpdateHandler(&$arFields)
    {
        Bitrix\Main\Diag\Debug::writeToFile(__METHOD__);
        Bitrix\Main\Diag\Debug::writeToFile($arFields);
    }
}
Код обновляющий дату активности и, потом, свойство:
PHP
1
2
3
4
5
6
7
8
9
10
11
$newDate =ConvertTimeStamp(time(), "FULL");
    $elProps = array(
            "MODIFIED_BY"       => $USER->GetID(),       
            "IBLOCK_ID"         => 20,
            "ACTIVE_FROM"       => $newDate,
            "ACTIVE"            => "Y",
        );
    $newEl = new CIBlockElement;
    
    $res = $newEl->Update(63832, $elProps);
    CIBlockElement::SetPropertyValuesEx(63832,20,array("ORDERID" => 10));
что получил в лог файл (записывается все что поступает в обработчик событий)
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MyClass::OnBeforeIBlockElementUpdateHandler
 
Array
(
    [MODIFIED_BY] => 2
    [IBLOCK_ID] => 20
    [ACTIVE_FROM] => 13.05.2016 14:08:33
    [ACTIVE] => Y
    [WF] => N
    [WF_NEW] => 
    [SEARCHABLE_CONTENT] => ПОСТЕЛЬНОЕ БЕЛЬЕ МИШУТКИ
ПРОСТО СУПЕР!БУДУ ЗАКАЗЫВАТЬ ЕЩЕ
 
    [ID] => 63832
)
как видно, обработчик был вызван только один раз, и свойствтам вообще нет.

Добавлено через 2 минуты
Цитата Сообщение от Server689 Посмотреть сообщение
У меня у элемента есть еще два свойства (тип список, число, число) вот они скидываются почему-то, а картинки и текст с заголовком не скидываются
Вы точно весь код здесь привели? Может вы уже где-то в обработчиках событий перекрутили?
0
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 14:28
Вот все обработчики все чисто тут
PHP
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
<?
  if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die();
  }
  /** @var CBitrixComponent $this */
  /** @var array $arParams */
  /** @var array $arResult */
  /** @var string $componentPath */
  /** @var string $componentName */
  /** @var string $componentTemplate */
  /** @global CDatabase $DB */
  /** @global CUser $USER */
  /** @global CMain $APPLICATION */
 
 
  /**
   * Загрузка необходимых классов
   */
  CModule::AddAutoloadClasses('', getAutoloadClasses());
 
  /**
   * отсылка профиля пользователя при изменении
   */
 
  //AddEventHandler('main', 'OnBeforeUserUpdate', array('userHandlers', 'checkUserProfileChange'));
 
  /*
   * Сделать логин как email
   */
 
  AddEventHandler("main", "OnBeforeUserRegister", array("registrationHandlers", "makeLoginAsEmail"));
 
  /*
   * По завершению юзера необходимо распределить по группам физ.лицо / юр лицо и тд...
   */
 
  AddEventHandler("main", "OnAfterUserAdd", array("userHandlers", "spreadToGroupAfterRegister"));
 
  /*
   * изменения флага премиума для вывода компаний в нужной сортировке
   */
 
  AddEventHandler("main", "OnBeforeUserUpdate", Array("userHandlers", "premiumFlagUpdate"));
 
  /* проверка всех менеджеров и посылка уведомлений */
 
  //AddEventHandler('main', 'OnBeforeUserUpdate', Array('userHandlers', 'checkManagers'));
 
  AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("voteHandlers", "beforeChange"));
 
  AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("adsHandlers", "sendNotificationAfterActivation"));
 
 
  function SaveLog($Str)
  {
    $file = $_SERVER['DOCUMENT_ROOT'] . '/log.php';
    $Str = print_r($Str, true);
    $Str = $Str . "\n";
    if (!$handle = fopen($file, 'a')) {
    }
    if (fwrite($handle, $Str) === false) {
    }
  }
 
  function getAutoloadClasses($directoryPath = false)
  {
    $classes = array();
    if (!$directoryPath) {
      $directoryPath = '/local/classes';
    }
 
    if ($directoryItems = scandir($_SERVER['DOCUMENT_ROOT'] . $directoryPath)) {
      foreach ($directoryItems as $item) {
        if ($item == '.' || $item == '..') {
          continue;
        }
 
        if (is_dir($_SERVER['DOCUMENT_ROOT'] . $directoryPath . '/' . $item)) {
          $classes = array_merge($classes, getAutoloadClasses($directoryPath . '/' . $item));
          continue;
        }
 
        $fileName = explode('.', $item);
        if (count($fileName) == 2 && $fileName[1] == 'php') {
          $classes[$fileName[0]] = $directoryPath . '/' . $item;
        }
      }
    }
 
    return $classes;
  }
 
  function headerCheckTitle()
  {
    global $APPLICATION;
    if ($APPLICATION->GetPageProperty('SHOW_TITLE') != 'N' && $APPLICATION->GetDirProperty('SHOW_TITLE') == 'Y') {
      $title = $APPLICATION->GetTitle();
 
      return "<section class='container'><h2 class='title'> $title </h2></section>";
    }
  }
 
  function headerCheckMainClassList()
  {
    global $APPLICATION;
 
    return $APPLICATION->GetDirProperty('MAIN_CLASS_LIST');
  }
 
  
?>
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
13.05.2016, 14:36
А где voteHandlers::beforeChange - там ничего нет?

Это у вас init.php ?

Добавлено через 5 минут
Hint:

SaveLog - это у вас велосипед

Есть "из коробки":
AddMessage2Log
и, сравнитеьно недавно появившийся:
Bitrix\Main\Diag\Debug::writeToFile
0
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 14:36
да это init.php

voteHandlers::beforeChange да там пусто
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
13.05.2016, 14:39
Цитата Сообщение от Server689 Посмотреть сообщение
да там пусто
Где то у вас есть еще какой то код. Код, что я привел выше, я проверил даже на нескольких элементах. Обновляет только то что нужно, остальное не трогает. Свойств у меня больше....
0
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 14:43
Вот нашел voteHandlers::beforeChange

PHP
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
<?
/*
 * обработка изменений инфоблока с комментариями, что бы не накручивали и тд рейтинг будет изменяться только тогда,
 * когда коментарий пройдет модерцию и так же откатываться если комментарий переходит в неактивный режим
 */
 
/**
 * @param $arFields - input fields on iBlock changing
 */
class voteHandlers {
  function beforeChange(&$arFields) {
    if ($arFields['IBLOCK_ID']) {
      if ($arFields['ACTIVE'] == 'Y' && $arFields['PROPERTY_VALUES'][12] == '') {
        $arFields['PROPERTY_VALUES'][12][]['VALUE'] = 7;
        $arAddVote = array(
            'ENITY_TYPE_ID' => 'USER',
            "ENTITY_ID"     => 1,
            "VALUE"         => 1000,
            "USER_ID"       => $arFields['PROPERTY_VALUES'][10][302]['VALUE'],
        );
        CRatings::AddRatingVote($arAddVote);
      }
 
      if ($arFields['ACTIVE'] == 'N' && $arFields['PROPERTY_VALUES'][12] != '') {
        $arFields['PROPERTY_VALUES'][12][0]['VALUE'] = '';
        $arFields['PROPERTY_VALUES'][12][]['VALUE'] = 7;
        $arAddVote = array(
            'ENITY_TYPE_ID' => 'USER',
            "ENTITY_ID"     => 1,
            "VALUE"         => -1000,
            "USER_ID"       => $arFields['PROPERTY_VALUES'][10][302]['VALUE'],
        );
        CRatings::AddRatingVote($arAddVote);
      }
    }
  }
}
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
13.05.2016, 14:53
Вот вам и ошибка:
PHP
1
 if ($arFields['ACTIVE'] == 'Y' && $arFields['PROPERTY_VALUES'][12] == '') {
я уже вам показал что $arFields['PROPERTY_VALUES'] не всегда существует в этом обработчике. А в вашем примере когда вы обновляете только поля так и есть. При этом выражение $arFields['PROPERTY_VALUES'][12] == '' даст "true"....... И тут же начинается заполнение
PHP
1
 $arFields['PROPERTY_VALUES'][12][]['VALUE'] = 7;
А, как мы помним, в update надо передавать либо все свойства либо ни одного. Система считает, что вы остальные хотите обнулить.
0
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 14:57
А как исправить, че-то совсем запутался ((((
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,444
Записей в блоге: 2
13.05.2016, 15:02
Примерно, как то так
PHP
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
class voteHandlers {
  function beforeChange(&$arFields) {
    if ($arFields['IBLOCK_ID'] 
        && array_key_exists('PROPERTY_VALUES',$arFields)
        && isset($arFields['PROPERTY_VALUES'][12])
        && isset($arFields['PROPERTY_VALUES'][10])
        && is_array($arFields['PROPERTY_VALUES'][10][302])
        )
    {
        if ($arFields['ACTIVE'] == 'Y' && $arFields['PROPERTY_VALUES'][12] == '') {
            $arFields['PROPERTY_VALUES'][12][]['VALUE'] = 7;
            $arAddVote = array(
                'ENITY_TYPE_ID' => 'USER',
                "ENTITY_ID"     => 1,
                "VALUE"         => 1000,
                "USER_ID"       => $arFields['PROPERTY_VALUES'][10][302]['VALUE'],
            );
            CRatings::AddRatingVote($arAddVote);
        }
        elseif ($arFields['ACTIVE'] == 'N' && $arFields['PROPERTY_VALUES'][12] != '') {
            $arFields['PROPERTY_VALUES'][12][0]['VALUE'] = '';
            $arFields['PROPERTY_VALUES'][12][]['VALUE'] = 7;
            $arAddVote = array(
                'ENITY_TYPE_ID' => 'USER',
                "ENTITY_ID"     => 1,
                "VALUE"         => -1000,
                "USER_ID"       => $arFields['PROPERTY_VALUES'][10][302]['VALUE'],
            );
            CRatings::AddRatingVote($arAddVote);
        }
        }
    }
}
1
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
13.05.2016, 15:08
Уххх, благодарю, два дня блин мучялся. Спасибо !!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2016, 15:08
Помогаю со студенческими работами здесь

Как правильно использовать события и свойства элемента CheckBox
Как получить обратное действие? Например у меня на форме: checkBox1 textBox1 Мне нужно чтобы когда была галочка (Что введенно...

Как вернуть окно с описание выделенного свойства элемента?
При выделении свойства в конструкторе, должно появляться описание этого свойства(см. вложение). Полазил в настройках, не нашел. Как его...

Как обновить Recycle View после добавления нового элемента в БД? Используется Cursor
Проблема такова, после добавления элемента в БД, список элементов Recycle View не обновляется, приходится заново пересоздавать фрагмент, а...

Как отменить свойства только для одной го элемента из класса?
http://rootedinisrael.org/ - создал для пунктов меню навигации нижнее подчеркивание при наведении, но все это распространяется и на...

PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства?
Работаю с propertyGrid. Одно поле высвечивается, когда в другом появляется определенное значение. Взяла за основу раздел «Как управлять...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru