1с как изменить регистр накопления
Перейти к содержимому

1с как изменить регистр накопления

  • автор:

1C. Как изменить записи в регистре не трогая документ-регистратор.

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

В таком случае не обязательно проводить манипуляции с документом, можно изменить его движения непосредственно в регистре.

Для изменения записей регистров, подчиненных регистраторам, используются наборы записей. При этом нужно установить отбор по регистратору.

При изменении записей регистра можно использовать набор записей, входящий в коллекцию движений документа (свойство Движения объекта ДокументОбъект), либо можно использовать набор записей, созданный с помощью менеджера регистра.

Итак, чтобы изменить записи регистра нужно:

– Создать набор записей;
– Установить отбор по определенному регистратору;
– Прочитать набор;
– Изменить записи набора;
– Записать набор.

Например, изменим записи в регистре накопления «Данные о начислениях».

НаборЗаписей = РегистрыНакопления.ДанныеОНачислениях.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Значение = Документ; НаборЗаписей.Прочитать(); Для каждого Запись Из НаборЗаписей Цикл Если Запись.ФизическоеЛицо = ФизическоеЛицоВыбранноеЗначение Тогда Запись.ФизическоеЛицо = ФизическоеЛицоНовоеЗначение; КонецЕсли; КонецЦикла; НаборЗаписей.Записать(); 

Документ , ФизическоеЛицоВыбранноеЗначение , ФизическоеЛицоНовоеЗначение – это реквизиты формы внешней обработки, с помощью которой мы изменяем записи регистра.

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

  • Регистр накопления
  • Программирование 1С
  • Документы

v8: Изменение записи регистра накопления

В регистре накопления есть запись, в которой не заполнено одно Измерение. Подскажите как программно заполнить с помощью внешней обработки.

Возможно, вас также заинтересует
21.08.2014 22:55 Ответ № 1

Примерно так, основа:

 Набор=РегистрыНакопления.ВашРегистр.СоздатьНаборЗаписей(); 
Набор.Отбор..Установить();
Набор.Прочитать();

Для Каждого ТекДвижение Из Набор Цикл
.
//Делаете то что вам хочется
КонецЦикла;


Набор.Записать();
 Процедура МодификацияЗаписейРегистраНакопления() 

ВыбДок = Документы.ПоступлениеТоваровУслуг.Выбрать();
Если ВыбДок.Следующий() Тогда
Набор =
РегистрыНакопления.НДСПредъявленный.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(ВыбДок.Ссылка);
Набор.Прочитать();

// изменение существующих записей
Для Каждого Движение Из Набор Цикл
Движение.НДС = 0;
КонецЦикла;

// добавление новых записей
Движение = Набор.ДобавитьРасход();
Движение.НДС = 100;
Движение.Период = ТекущаяДата();

Движение = Набор.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.НДС = 300;
Движение.Период = ТекущаяДата();

// удаление существующих записей
Набор.Удалить(0);

Набор.Записать(Истина);
КонецЕсли;

КонецПроцедуры
 НаборЗаписей=РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей(); 

Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ТоварыНаСкладах.Период как Период,
| ТоварыНаСкладах.Регистратор как Регистратор,
| ТоварыНаСкладах.Количество как Количество
|ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ГДЕ
| ТоварыНаСкладах.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
|И ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ";

Запрос.УстановитьПараметр("ДатаНачала", НачПериода);
Запрос.УстановитьПараметр("ДатаОкончания", КонПериода);

Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
Для каждого движ из НаборЗаписей Цикл
Движ.Количество=5;
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
21.08.2014 23:45 Ответ № 2

+ нашел на компе обработку по редактированию регистров Pravka registrov (korrektirovka registrov).rar

Как изменять записи регистра накопления?

Распечатать

Распечатать

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Microsoft SQL Server Native Client Добавление значения в столбец «datetime» привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец «datetime» привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени QR код в 1С 21
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог ZIP-архив Разделить и Объединить Файл 0
При работе с большими объемами данных могут возникнуть проблемы при пересылке архивных файлов. Типичной такой ситуацией является ограничение некоторых почтовых серверов на размер сообщения — если письмо превышает некий заранее установленный размер, о Посмотреть все результаты поиска похожих

Еще в этой же категории

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Только текст:

Текст и код:

Изображения

Отсутствуют
Комментарии

28.03.2018 16:47 Комментарий: 1

Я бы добавил, что отбор можно делать только по Регистратору

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.

[ Главная | FAQ: Все | 7.х | 8.х | 8.2 УП | 8.3 | Видео | Files | Forum | Freelance | Поиск | Реклама на HelpF.pro | Обратная связь ]
HelpF.pro [old Help1C.com] 2009-2023 Все материалы, размещенные на сайте, добавлены посетителями сайта или взяты из свободных источников. Подробнее.

1с как изменить регистр накопления

Описание:

Регистры накопления в системе 1С:Предприятие используются для накопления информации о наличии и движении средств — товарных, денежных и других. Информация о хозяйственных операциях в регистры накопления вводится с использованием документов (регистраторов) и используется, например, для получения отчетных форм.

Регистр накопления представляет собой n-мерную систему координат, в узлах которой хранятся совокупные данные. Оси такой системы координат будем называть измерениями регистра, а хранящиеся в узлах данные — ресурсами регистра. Содержимое регистра накопления можно представить в виде таблицы с количеством колонок, равным сумме измерений и ресурсов регистра накопления.

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

В системе 1С:Предприятие возможно использование регистров накопления двух типов: регистры остатков и регистры оборотов. Для регистра остатков методы встроенного языка позволяют получить остатки регистра накопления на заданный момент времени. Есть возможность фильтрации по значениям измерений, а также получения остатков в разрезе других измерений. Регистры оборотов предназначены для хранения информации, для которой понятие остатка лишено смысла, например, сумм продаж в разрезе покупателей.

В программных модулях для общих действий над регистром накопления (получение остатков и оборотов по данным регистра накопления, поиска нужных записей, формирования выборок, создания форм и макетов) служит объект РегистрНакопленияМенеджер. . Для считывания и занесения набора записей в базу данных по определенному условию отбора служит объект РегистрНакопленияНаборЗаписей. Для динамического обхода записей регистра служит объект РегистрНакопленияВыборка. .

Оглавление (нажмите, чтобы раскрыть)

  • Как прочитать записи регистра накопления
  • Как получить обороты по регистру накопления
  • Как получить остатки по регистру накопления
  • Как получить сразу остатки и обороты по регистру накопления
  • Как найти и изменить программно записи в регистр накопления документа (регистратора)
  • Как прочитать записи документа в регистр накопления запросом
  • Как создать записи регистра накопления без привязки к документу
  • Скачать и выполнить эти примеры на компьютере
/// Как прочитать записи регистра накопления в 1с 8.3, 8.2 &НаСервере Процедура КакПрочитатьЗаписиРегистраНакопленияНаСервере() // Получим все записи регистра накопления ЗаказыКлиентов // по организации ООО "Ромашка" за 1 квартал 2014 года, // упорядочив их по возрастанию даты. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказыКлиентов.Период, | ЗаказыКлиентов.Регистратор, | ЗаказыКлиентов.НомерСтроки, | ЗаказыКлиентов.Активность, | ЗаказыКлиентов.Контрагент, | ЗаказыКлиентов.Номенклатура, | ЗаказыКлиентов.Количество |ИЗ | РегистрНакопления.ЗаказыКлиентов КАК ЗаказыКлиентов |ГДЕ | ЗаказыКлиентов.Активность = Истина И | ЗаказыКлиентов.Организация = &ВыбОрганизация И | ЗаказыКлиентов.Период МЕЖДУ &НачДата И &КонДата |УПОРЯДОЧИТЬ ПО | ЗаказыКлиентов.Период"; Запрос.УстановитьПараметр("ВыбОрганизация", Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""") ); // начальная дата - 1 января 2014 года Запрос.УстановитьПараметр("НачДата", '20140101000000'); // конечная дата - 31 марта 2014 года 23 часа 59 минут 59 секунд Запрос.УстановитьПараметр("КонДата", '20140331235959'); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Сообщить( "[" + Записи.Период + "] " + Записи.Номенклатура + " " + Записи.Количество + " шт." + " (" + Записи.Регистратор + ")" ); КонецЦикла; КонецПроцедуры /// Как получить обороты по регистру накопления в 1с 8.3, 8.2 &НаСервере Процедура КакПолучитьОборотыПоРегиструНапопленияНаСервере() // За получение оборотов по регистру накопления за произвольный период // с заданной периодичностью в различных разрезах аналитики отвечает // виртуальная таблица Обороты, // у неё есть следующие параметры: // 1. Начало периода (включая) // 2. Конец периода (включая) // 3. Периодичность (например, Период, Запись, Год, Месяц. ) // 4. Условие (например, Организация = &ВыбОрганизация) // Пример №1 Сообщить("Пример №1"); // Посчитаем сколько и каких продуктов было заказано за 1 квартал // 2014 года в организации ООО "Ромашка". Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказыКлиентовОбороты.Номенклатура, | ЗаказыКлиентовОбороты.Организация, | ЗаказыКлиентовОбороты.КоличествоОборот |ИЗ | РегистрНакопления.ЗаказыКлиентов.Обороты( | ДАТАВРЕМЯ(2014, 01, 01, 00, 00, 00), | ДАТАВРЕМЯ(2014, 03, 31, 23, 59, 59), | Период, | Организация = &ВыбОрганизация | ) КАК ЗаказыКлиентовОбороты |УПОРЯДОЧИТЬ ПО | ЗаказыКлиентовОбороты.Номенклатура"; Запрос.УстановитьПараметр("ВыбОрганизация", Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""") ); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Сообщить( "За 1 кв. 2014 года заказали " + Записи.КоличествоОборот + " шт. " + Записи.Номенклатура ); КонецЦикла; // Пример №2 Сообщить("Пример №2"); // Посчитаем сколько бананов было заказано за каждый месяц // в 1 квартале 2014 года в организации "Ромашка". Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказыКлиентовОбороты.Период, | ЗаказыКлиентовОбороты.Номенклатура, | ЗаказыКлиентовОбороты.Организация, | ЗаказыКлиентовОбороты.КоличествоОборот |ИЗ | РегистрНакопления.ЗаказыКлиентов.Обороты( | &НачПериод, | &КонПериод, | Месяц, | Организация = &ВыбОрганизация И | Номенклатура = &ВыбНоменклатура | ) КАК ЗаказыКлиентовОбороты |УПОРЯДОЧИТЬ ПО | ЗаказыКлиентовОбороты.Период"; Запрос.УстановитьПараметр("НачПериод", '20140101000000'); Запрос.УстановитьПараметр("КонПериод", '20140331235959'); Запрос.УстановитьПараметр("ВыбОрганизация", Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""") ); Запрос.УстановитьПараметр("ВыбНоменклатура", Справочники.Номенклатура.НайтиПоНаименованию("Банан") ); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Сообщить( "За " + Формат(Записи.Период, "ДФ=ММММ") + " заказали " + Записи.КоличествоОборот + " шт. " + Записи.Номенклатура ); КонецЦикла; КонецПроцедуры /// Как получить остатки по регистру накопления в 1с 8.3, 8.2 &НаСервере Процедура КакПолучитьОстаткиПоРегиструНакопленияНаСервере() // За получение остатков по регистру накопления в разрезе // аналитики отвечает виртуальная таблица Остатки, // у неё есть следующие параметры: // 1. Период, на который считаем остатки, исключая саму дату. // Если нужны остатки на дату включительно - используем // тип Граница (см. пример ниже). // 2. Условие (например, Организация = &ВыбОрганизация) // Получим остатки бананов на основном складе в организации // ООО "Ромашка" на 31 марта 2014 года (включительно) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗапасыЕдыОстатки.Склад, | ЗапасыЕдыОстатки.Номенклатура, | ЗапасыЕдыОстатки.Организация, | ЗапасыЕдыОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ЗапасыЕды.Остатки( | &ВыбДата, | Склад = &ВыбСклад И | Номенклатура = &ВыбНоменклатура | ) КАК ЗапасыЕдыОстатки"; Запрос.УстановитьПараметр("ВыбДата", Новый Граница('20140331235959', ВидГраницы.Включая) ); Запрос.УстановитьПараметр("ВыбСклад", Справочники.Склады.НайтиПоНаименованию("Основной") ); Запрос.УстановитьПараметр("ВыбНоменклатура", Справочники.Номенклатура.НайтиПоНаименованию("Банан") ); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Сообщить( "Остатки " + " " + Записи.Номенклатура + " на складе " + Записи.Склад + " на дату " + "31.03.2014 (включительно) " + " составляют " + Записи.КоличествоОстаток + " шт."); КонецЦикла; КонецПроцедуры /// Как получить сразу остатки и обороты по регистру /// накопления в 1с 8.3, 8.2 &НаСервере Процедура КакПолучитьСразуОстаткиИОборотыПоРегиструНакопленияНаСервере() // За получение остатков и оборотов за произвольный период // с заданной периодичностью в разрезе аналитики отвечает // виртуальная таблица ОстаткиИОбороты, у неё есть параметры: // 1. Начало периода (включая) // 2. Конец периода (включая) // 3. Периодичность (например, Период, Год, Месяц. ) // 4. Метод дополнения периодов (Движение или ДвиженияИГраницыПериода) // 5. Условие (например, Организация = &ВыбОрганизация) // Для примера получим начальный остаток, приход, расход и конечный остаток // банана на всех складах за каждый месяц 2014 года для // организация ООО "Ромашка". Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗапасыЕдыОстаткиИОбороты.Период, | ЗапасыЕдыОстаткиИОбороты.Номенклатура, | ЗапасыЕдыОстаткиИОбороты.Организация, | ЗапасыЕдыОстаткиИОбороты.КоличествоНачальныйОстаток, | ЗапасыЕдыОстаткиИОбороты.КоличествоОборот, | ЗапасыЕдыОстаткиИОбороты.КоличествоПриход, | ЗапасыЕдыОстаткиИОбороты.КоличествоРасход, | ЗапасыЕдыОстаткиИОбороты.КоличествоКонечныйОстаток |ИЗ | РегистрНакопления.ЗапасыЕды.ОстаткиИОбороты( | ДАТАВРЕМЯ(2014, 01, 01, 00, 00, 00), | ДАТАВРЕМЯ(2014, 12, 31, 23, 59, 59), | Месяц, ДвиженияИГраницыПериода, | Организация = &ВыбОрганизация И | Номенклатура = &ВыбНоменклатура | ) КАК ЗапасыЕдыОстаткиИОбороты |УПОРЯДОЧИТЬ ПО | ЗапасыЕдыОстаткиИОбороты.Период"; Запрос.УстановитьПараметр("ВыбОрганизация", Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""") ); Запрос.УстановитьПараметр("ВыбНоменклатура", Справочники.Номенклатура.НайтиПоНаименованию("Банан") ); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Сообщить( Формат(Записи.Период, "ДФ=ММММ") + " [" + Записи.Номенклатура + "] " + "нач. остаток " + Записи.КоличествоНачальныйОстаток + " приход " + Записи.КоличествоПриход + ", расход " + Записи.КоличествоРасход + " кон. остаток " + Записи.КоличествоКонечныйОстаток ); КонецЦикла; КонецПроцедуры /// Как найти и изменить программно записи в регистр накопления /// документа (регистратора) в 1с 8.3, 8.2 &НаСервере Процедура КакНайтиИИзменитьЗаписиДокументаНаСервере() // Предположим у нас есть ссылка на проведенный документ // поступления еды № ВМБП-000002 ПоступлениеСсылка = Документы.ПоступлениеЕды.НайтиПоНомеру( "ВМБП-000002", '20141231' ); // Мы значем, что этот документ делает следующие записи // в регистр накопления "ЗапасыЕды": // Приход [Организация, Склад, Номенклатура] [Количество] // Наша задача: найти эти записи и изменить // их (например, удвоим количество поступившего товара) // и записать вместо старых. // Используем объектную технику получения записей, // ведь мы будем их изменять. Поступление = ПоступлениеСсылка.ПолучитьОбъект(); // Получим набор записей этого документа в регистр "ЗапасыЕды". НаборЗаписей = Поступление.Движения.ЗапасыЕды; // Прочитаем записи из базы данных. НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл // Выведем старые значения. Сообщить( "[" + Запись.Организация + ", " + Запись.Склад + ", " + Запись.Номенклатура + "] " + "[" + Запись.Количество + "]" ); // Удвоим количество. Запись.Количество = 2 * Запись.Количество; КонецЦикла; // Добавим новую запись в регистр накопления. НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Организация = Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка"""); НоваяЗапись.Склад = Справочники.Склады.НайтиПоНаименованию("Основной"); НоваяЗапись.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Банан"); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.Количество = 1000; // Разом запишем набор записей. НаборЗаписей.Записать( Истина // удалим старые записи и запишем вместо них новые ); // Теперь записи регистра ЗапасыЕды по документу № ВМБП-000002, // отличаются от тех, что были записаны документом при проведении. // Чтобы вернуть их к начальному виду - нужно // перепровести документ. КонецПроцедуры /// Как прочитать записи документа в регистр накопления /// запросом в 1с 8.3, 8.2 &НаСервере Процедура КакПрочитатьЗаписиДокументаЗапросомНаСервере() // Этот приём используется, если не требуется изменять // найденные записи. // Предположим у нас есть ссылка на проведенный документ // поступления еды № ВМБП-000002 ПоступлениеСсылка = Документы.ПоступлениеЕды.НайтиПоНомеру( "ВМБП-000002", '20141231' ); // Мы значем, что этот документ делает записи // в регистр накопления "ЗапасыЕды". // Прочитаем эти записи запросом. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗапасыЕды.Период, | ЗапасыЕды.Регистратор, | ЗапасыЕды.НомерСтроки, | ЗапасыЕды.Активность, | ЗапасыЕды.ВидДвижения, | ЗапасыЕды.Склад, | ЗапасыЕды.Номенклатура, | ЗапасыЕды.Организация, | ЗапасыЕды.Количество |ИЗ | РегистрНакопления.ЗапасыЕды КАК ЗапасыЕды |ГДЕ | ЗапасыЕды.Регистратор = &ВыбРегистратор |УПОРЯДОЧИТЬ ПО | ЗапасыЕды.НомерСтроки"; Запрос.УстановитьПараметр( "ВыбРегистратор", ПоступлениеСсылка ); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Сообщить( "[" + Записи.Организация + ", " + Записи.Склад + ", " + Записи.Номенклатура + "] " + "[" + Записи.Количество + "]" ); КонецЦикла; КонецПроцедуры /// Как создать записи регистра накопления без привязки /// к документу в 1с 8.3, 8.2 &НаСервере Процедура КакСоздатьЗаписиБезДокументаНаСервере() // В нашей тестовой конфигурации нет документа // "ОперацияБух", который присутствует в бухгалтерской базе. Сообщить("Этот пример нельзя выполнить в этой базе."); Возврат; // Записи регистра накопления обязательно // должны быть привязаны к документу, в данном случае // этим документом будет документ "ОперацияБух", // задуманный как раз для ручных операций. Операция = Документы.ОперацияБух.СоздатьДокумент(); Операция.Дата = ТекущаяДата(); Операция.Организация = Справочники.Организации.НайтиПоНаименованию("Милькин В. В. ИП"); Операция.СуммаОперации = 1000; Операция.Содержание = "Ручная операция по регистру накопления ИПДоходы"; Операция.Записать(РежимЗаписиДокумента.Запись); // Затем получаем его набор записей для регистра ИПДоходы НаборЗаписей = Операция.Движения.ИПДоходы; Запись = НаборЗаписей.Добавить(); Запись.Период = Операция.Дата; Запись.Организация = Операция.Организация; // и т.д. заполняем все нужные поля регистра Запись.Сумма = 1000; НаборЗаписей.Записать(Истина); КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере

Регистры накопления в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *