30 задач. Странных и не очень
Разработка - Практика программирования
программирование задачи проверка тестирование знания практика загадки головоломки баг фича
Цель статьи
Вы когда-нибудь проходили собеседование, на котором дают разного рода задачи с проверкой результата? Простой код, результат которого нужно объяснить. Мое мнение таково, что подобные задачи вряд ли могут дать полную картину о компетенциях разработчика, поэтому собеседование лучше проводить другими путями.
Но, подобные задачки могут быть интересными головоломками и в какой-то мере показать ту боль, что прошел разработчик за годы работы с платформой. А там, где может быть что-то интересное, почему бы не поразбираться.
В одной из предыдущих статей "Баг или фича? Неожиданное поведение платформы" мы коснулись нескольких особенностей в поведении платформы 1С. Баги это или фичи, трудно сказать. Решать это Вам. Сегодня мы рассмотрим 30 простых фрагментов кода, а Вам нужно будет сказать какой результат выполнения будет для каждой из них.
Нет, это не проверка Ваших знаний, компетенций, навыков и целеустремленности. Цель публикации - сбор интересных и не очень задач, над которыми было бы интересно посидеть, проверить на сколько предсказуемо работает платформа 1С с Вашей точки зрения. Можно, конечно, эти задачи показывать и на собеседовании, но лучше обсудите с кандидатом предыдущий опыт работы. Так будет намного содержательней.
А все что ниже - это больше для веселья!
Среда выполнения
Весь продемонстрированный далее код выполнялся на платформе 1С версии 8.3.13.1690 в клиент-серверном варианте работы, управляемые формы. Никаких особых настроек не выполнялось. Обычно код задачи делится на клиентский и серверный. Можете вставить фрагмент в управляемую форму и разбить процедуры и функции по контексту выполнения с помощью директив "&НаКлиенте" и "&НаСервере".
Думаю, что поведение кода в задачах будет одинаковым как для файловой, так и для клиент-серверной базы, поэтому если сервера у Вас под рукой нет, то это не повод не попробовать эти задачи решить. Плюс ко всему, сама версия платформы не должна стать причиной разного поведения, даже если у Вас старая добрая версия 8.3.5! В последнем случае только некоторые из задач не могут быть решены (там где работа с потоками, например).
В общем, ничего особенного. Просто берете и делаете :)
Задачи
Хватит болтать, пора действовать!
Сложность задач не зависит от раздела и номера, все перемешано. Сделано это специально, чтобы у Вас не было ожиданий сложности. Так ведь интересней!
Рекомендую сначала прорешать задачу без конфигуратора с кратким объяснением своему решению, а после уже проверить себя, отдав код на выполнение платформе 1С. Выкладывать результаты для всех или нет - дело только Ваше. Но, думаю, что было бы интересно поднять обсуждение.
Первая порция задач.
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача1(Команда)
РезультатАлгоритма = Задача1НаСервере();
Сообщить(РезультатАлгоритма);
КонецПроцедуры
&НаСервере
Функция Задача1НаСервере()
Возврат ((Новый Структура) = (Новый Структура));
КонецФункции
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача2(Команда)
РезультатАлгоритма = Задача2НаСервере();
Сообщить(РезультатАлгоритма);
КонецПроцедуры
&НаСервере
Функция Задача2НаСервере()
Возврат ((Новый Массив(0)) = (Новый Массив(0)));
КонецФункции
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача3(Команда)
РезультатАлгоритма = Задача3НаСервере();
Сообщить(РезультатАлгоритма);
КонецПроцедуры
&НаСервере
Функция Задача3НаСервере()
Возврат (Null = Неопределено);
КонецФункции
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача4(Команда)
Задача4НаСервере();
КонецПроцедуры
&НаСервере
Функция Задача4НаСервере()
Возврат Сравнение1()
ИЛИ Сравнение2()
ИЛИ Сравнение3()
ИЛИ Сравнение4()
ИЛИ Сравнение5();
КонецФункции
Функция Сравнение1()
Сообщить("Сравнение 1");
Возврат Ложь;
КонецФункции
Функция Сравнение2()
Сообщить("Сравнение 2");
Возврат Ложь;
КонецФункции
Функция Сравнение3()
Сообщить("Сравнение 3");
Возврат Истина;
КонецФункции
Функция Сравнение4()
Сообщить("Сравнение 4");
Возврат Ложь;
КонецФункции
Функция Сравнение5()
Сообщить("Сравнение 5");
Возврат Истина;
КонецФункции
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача5(Команда)
Задача5НаСервере();
КонецПроцедуры
&НаСервере
Функция Задача5НаСервере()
Возврат Сравнение1()
И Сравнение2()
И Сравнение3()
И Сравнение4()
И Сравнение5();
КонецФункции
Функция Сравнение1()
Сообщить("Сравнение 1");
Возврат Ложь;
КонецФункции
Функция Сравнение2()
Сообщить("Сравнение 2");
Возврат Ложь;
КонецФункции
Функция Сравнение3()
Сообщить("Сравнение 3");
Возврат Истина;
КонецФункции
Функция Сравнение4()
Сообщить("Сравнение 4");
Возврат Ложь;
КонецФункции
Функция Сравнение5()
Сообщить("Сравнение 5");
Возврат Истина;
КонецФункции
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача6(Команда)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Значение", 1);
Задача6НаСервере(СтруктураДанных);
Сообщить(СтруктураДанных.Значение);
КонецПроцедуры
&НаСервере
Процедура Задача6НаСервере(СтруктураДанных)
СтруктураДанных.Значение = 100;
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача7(Команда)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Значение", 1);
ФиксированнаяСтруктураДанных = Новый ФиксированнаяСтруктура(СтруктураДанных);
Задача7НаСервере(ФиксированнаяСтруктураДанных.Значение);
Сообщить(СтруктураДанных.Значение);
КонецПроцедуры
&НаСервере
Процедура Задача7НаСервере(ПереданноеЗначение)
ПереданноеЗначение = 123456;
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача8(Команда)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Значение", 1);
ФиксированнаяСтруктураДанных = Новый ФиксированнаяСтруктура(СтруктураДанных);
Задача8НаСервере(ФиксированнаяСтруктураДанных);
Сообщить(ФиксированнаяСтруктураДанных.Значение);
КонецПроцедуры
&НаСервере
Процедура Задача8НаСервере(ФиксированнаяСтруктураДанных)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Значение", 123);
ФиксированнаяСтруктураДанных = Новый ФиксированнаяСтруктура(СтруктураДанных);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача9(Команда)
Задача9НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача9НаСервере()
ТекущаяДатаНаСервере = ТекущаяДатаСеанса();
ИзмененнаяДатаНаСервере = ТекущаяДатаНаСервере + 0.001;
ДатыРавны = (ТекущаяДатаНаСервере = ИзмененнаяДатаНаСервере);
Сообщить(ДатыРавны);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача10(Команда)
Задача10НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача10НаСервере()
ТекущаяДатаНаСервере = ТекущаяДатаСеанса();
ИзмененнаяДатаНаСервере = ТекущаяДатаНаСервере + 0.001;
ДатыРавны = (Строка(ТекущаяДатаНаСервере) = Строка(ИзмененнаяДатаНаСервере));
Сообщить(ДатыРавны);
КонецПроцедуры
На этом первая порция задач закончена. Выпейте крепкого чая и продолжим.
Вторая порция задач.
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача11(Команда)
Задача11НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача11НаСервере()
НачатьТранзакцию();
Попытка
ХранилищеОбщихНастроек.Сохранить("МоеЗначение", "МойКлюч", Неопределено);
ВызватьИсключение "Ты не пройдешь!";
ЗафиксироватьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПопытки;
ЗначениеИзХранилища = ХранилищеОбщихНастроек.Загрузить("МоеЗначение", "МойКлюч");
Сообщить(ЗначениеИзХранилища);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача12(Команда)
Задача12НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача12НаСервере()
ПроверочноеЗначение = Неопределено;
НачатьТранзакцию();
Попытка
ХранилищеОбщихНастроек.Сохранить("МоеЗначение", "МойКлюч", Неопределено);
ВызватьИсключение "Ты не пройдешь!";
ЗафиксироватьТранзакцию();
Исключение
ХранилищеОбщихНастроек.Сохранить("МоеЗначениеПроверочное", "МойКлючПроверочное", 110011);
ПроверочноеЗначение = ХранилищеОбщихНастроек.Загрузить("МоеЗначениеПроверочное", "МойКлючПроверочное");
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПопытки;
ЗначениеИзХранилища = ХранилищеОбщихНастроек.Загрузить("МоеЗначение", "МойКлюч");
Сообщить(ПроверочноеЗначение);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача13(Команда)
Задача13НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача13НаСервере()
ЧислоПроверка = 0.000102410434234235348573456378465353465;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| &ЧислоПроверка КАК ЧислоПроверка
|ПОМЕСТИТЬ ВТ
|;
|
|ВЫБРАТЬ
| ВТ.ЧислоПроверка КАК ЧислоПроверка
|ИЗ
| ВТ КАК ВТ";
Запрос.УстановитьПараметр("ЧислоПроверка", ЧислоПроверка);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ЧислаРавны = Выборка.ЧислоПроверка = ЧислоПроверка;
Сообщить("ЧислаРавны: " + ЧислаРавны);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача14(Команда)
Задача14НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача14НаСервере()
СтрокиРавны = ("Привет" = "ПРИВЕТ");
Сообщить(СтрокиРавны);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача15(Команда)
Задача15НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача15НаСервере()
СтрокиРавны = ("Привeт" = "Привет");
Сообщить(СтрокиРавны);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача16(Команда)
Задача16НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача16НаСервере(НомерВызова = 0)
НомерВызова = НомерВызова + 1;
Сообщить(НомерВызова);
Задача16НаСервере(НомерВызова)
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача17(Команда)
Задача17НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача17НаСервере()
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("ЗначениеПоиска");
ТаблицаДанных.Колонки.Добавить("Значение");
Запись = ТаблицаДанных.Добавить();
Запись.ЗначениеПоиска = "ЗначениеR39;поиска";
Запись.Значение = 100;
НайденноеЗначение = 0;
ПоискЗаписи = ТаблицаДанных.НайтиСтроки(Новый Структура("ЗначениеПоиска", "Значение поиска"));
Если ПоискЗаписи.Количество() > 0 Тогда
НайденноеЗначение = ПоискЗаписи.Получить(0).Значение;
Иначе
НайденноеЗначение = 0;
КонецЕсли;
Сообщить(НайденноеЗначение);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача18(Команда)
Задача18НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача18НаСервере()
МассивЗначений = Новый Массив;
МассивЗначений.Добавить(0);
МассивЗначений.Добавить(1);
МассивЗначений.Добавить(2);
МассивЗначений.Добавить(3);
МассивЗначений.Добавить(4);
МассивЗначений.Добавить(5);
ПотокВПамяти = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(ПотокВПамяти);
Для Каждого ЭлементМассива Из МассивЗначений Цикл
ЗаписьДанных.ЗаписатьЦелое64(ЭлементМассива);
КонецЦикла;
ЗаписьДанных.Закрыть();
МассивКакДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
ВременныйФайл = ПолучитьИмяВременногоФайла("tmp");
МассивКакДвоичныеДанные.Записать(ВременныйФайл);
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ВременныйФайл);
ВесьТекст = ТекстовыйДокумент.ПолучитьТекст();
Сообщить(ВесьТекст);
КонецПроцедуры
Что выведет этот код? И выполнится ли? (Только по Windows)
&НаКлиенте
Процедура Задача19(Команда)
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("notepad");
Задача19НаСервере(WshShell);
Сообщить("Ура, заработало!");
КонецПроцедуры
&НаСервере
Процедура Задача19НаСервере(WshShell)
WshShell.Run("notepad");
Сообщить("Привет с сервера!");
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача20(Команда)
Задача20НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача20НаСервере()
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("notepad");
АдресВХранилище = ПоместитьВоВременноеХранилище(WshShell, УникальныйИдентификатор);
ОбъектИзХранилища = ПолучитьИзВременногоХранилища(АдресВХранилище);
ТипОбъектаИзХранилища = ТипЗнч(ОбъектИзХранилища);
Сообщить(ТипОбъектаИзХранилища);
КонецПроцедуры
Вторая порция задач закончена. Можете передохнуть и потратить новый рабочий день на решение третьей порции задач! :)
Последняя порция задач.
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача21(Команда)
Задача21НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача21НаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| 1 КАК ЧислоЗначение
|ПОМЕСТИТЬ ВТ_Значения
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 3
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_Значения_1.ЧислоЗначение КАК ЧислоЗначение_1,
| ВТ_Значения_2.ЧислоЗначение КАК ЧислоЗначение_2,
| ВТ_Значения_3.ЧислоЗначение КАК ЧислоЗначение_3
|ИЗ
| ВТ_Значения КАК ВТ_Значения_1,
| ВТ_Значения КАК ВТ_Значения_2,
| ВТ_Значения КАК ВТ_Значения_3";
РезультатыЗапроса = Запрос.ВыполнитьПакет();
Выборка1 = РезультатыЗапроса[0].Выбрать();
Выборка2 = РезультатыЗапроса[1].Выбрать();
ОбщееКоличествоЗаписей = Выборка1.Количество() + Выборка2.Количество();
Сообщить(ОбщееКоличествоЗаписей);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача22(Команда)
Задача22НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача22НаСервере()
ТаблицаДляЗапроса = Новый ТаблицаЗначений;
ТаблицаДляЗапроса.Колонки.Добавить("ЗначениеСтрока", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150)));
ТаблицаДляЗапроса.Колонки.Добавить("ЗначениеЧисло", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(15,2)));
Запись = ТаблицаДляЗапроса.Добавить();
Запись.ЗначениеСтрока = "Один";
Запись.ЗначениеЧисло = 1;
Запись = ТаблицаДляЗапроса.Добавить();
Запись.ЗначениеСтрока = "Два";
Запись.ЗначениеЧисло = 2;
Запись = ТаблицаДляЗапроса.Добавить();
Запись.ЗначениеСтрока = "Три";
Запись.ЗначениеЧисло = 3;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Т1.ЗначениеСтрока КАК ЗначениеСтрока1,
| Т1.ЗначениеЧисло КАК ЗначениеЧисло1,
| Т2.ЗначениеСтрока КАК ЗначениеСтрока2,
| Т2.ЗначениеЧисло КАК ЗначениеЧисло2
|ПОМЕСТИТЬ ВТ_ДанныеТаблицыЗначений
|ИЗ
| &ТаблицаДляЗапроса КАК Т1,
| &ТаблицаДляЗапроса КАК Т2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ДанныеТаблицыЗначений.ЗначениеСтрока1 КАК ЗначениеСтрока1,
| ВТ_ДанныеТаблицыЗначений.ЗначениеЧисло1 КАК ЗначениеЧисло1,
| ВТ_ДанныеТаблицыЗначений.ЗначениеСтрока1 КАК ЗначениеСтрока2,
| ВТ_ДанныеТаблицыЗначений.ЗначениеЧисло1 КАК ЗначениеЧисло2
|ИЗ
| ВТ_ДанныеТаблицыЗначений КАК ВТ_ДанныеТаблицыЗначений";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
КоличествоЗаписей = Выборка.Количество();
Сообщить(КоличествоЗаписей);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача23(Команда)
Задача23НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача23НаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 0
| Т.Значение КАК Значение
|ИЗ
| (ВЫБРАТЬ
| 1 КАК Значение
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 2) КАК Т";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
КоличествоЗаписей = ВыборкаДетальныеЗаписи.Количество();
Сообщить(КоличествоЗаписей);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача24(Команда)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Значение", 1);
ФиксированнаяСтруктураДанных = Новый ФиксированнаяСтруктура(СтруктураДанных);
Задача24НаСервере(ФиксированнаяСтруктураДанных.Значение);
Сообщить(СтруктураДанных.Значение);
КонецПроцедуры
&НаСервере
Процедура Задача24НаСервере(Знач ПереданноеЗначение)
ПереданноеЗначение = 123456;
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача25(Команда)
МассивЗначений = Новый Массив;
МассивЗначений.Добавить(1000);
МассивЗначений.Добавить(Новый Структура("Значение", 2000));
МассивЗначений.Добавить(Дата(2019, 11, 11));
Задача25НаСервере(МассивЗначений, МассивЗначений);
РезультатВычислений = МассивЗначений.Получить(0)
+ МассивЗначений.Получить(1).Значение
+ Год(МассивЗначений.Получить(2));
Сообщить(РезультатВычислений);
КонецПроцедуры
&НаСервере
Процедура Задача25НаСервере(Знач МассивЗначений1, МассивЗначений2)
МассивЗначений1.Установить(0, 10000);
МассивЗначений1.Получить(1).Значение = 20000;
МассивЗначений1.Установить(2, Дата(2020,11,11));
МассивЗначений2.Установить(0, 10000);
МассивЗначений2.Получить(1).Значение = 20000;
МассивЗначений2.Установить(2, Дата(2020,11,11));
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача26(Команда)
Задача26НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача26НаСервере()
ДатыРавны = (ТекущаяДата() = ТекущаяДатаСеанса());
Сообщить(ДатыРавны);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача27(Команда)
Задача27НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача27НаСервере()
РезультатВычислений = 0;
Для Сч = 1 По 10 Цикл
Остаток = Сч % 2;
Если Остаток > 0 Тогда
РезультатВычислений = РезультатВычислений + Сч;
КонецЕсли;
КонецЦикла;
Сообщить(РезультатВычислений);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача28(Команда)
Задача28НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача28НаСервере()
ПустойGUID = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
GUIDЗаполнен = ЗначениеЗаполнено(ПустойGUID);
Сообщить(GUIDЗаполнен);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача29(Команда)
Задача29НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача29НаСервере()
РезультатВычислений = Pow((5 * 1) / (7 % 2) * Sqrt(9), 2);
Сообщить(РезультатВычислений);
КонецПроцедуры
Что выведет этот код? И выполнится ли?
&НаКлиенте
Процедура Задача30(Команда)
Задача30НаСервере();
КонецПроцедуры
&НаСервере
Процедура Задача30НаСервере()
ИсходноеЗначение = 1.5;
НовоеЗначение1 = Окр(ИсходноеЗначение, 2, РежимОкругления.Окр15как20);
НовоеЗначение2 = Окр(ИсходноеЗначение, 2, РежимОкругления.Окр15как10);
ЗначенияРавны = (НовоеЗначение1 = НовоеЗначение2);
Сообщить(ЗначенияРавны);
КонецПроцедуры
Теперь откиньтесь на спинку компьютерного кресла и проверьте результаты на практике.
Так много кода! Так много задач! И так мало ответов!
Вам слово
Прошли весь путь и не нашли ответов? Все так. Думаю, нет смысла давать ответы на задачи, которые легко проверить в конфигураторе. Надеюсь, я смог хоть немного Вас запутать и улыбнуться.
Это небольшая часть моей коллекции задач, которая скопилась у меня за многие годы. И, кстати, некоторые из них, не смотря на то, что сталкивался с ними ранее, я не смог решить сходу правильно.
Если в Ваших "чертогах разума" также есть интересные задачки или комментарии по задачам из статьи, то добро пожаловать в комментарии!
P.S. Лайк, репост, подписка!
Другие ссылки
Похожих тем не нашел, но если подскажите, то добавлю сюда.
- "Баг или фича? Неожиданное поведение платформы"
- Схема интервью для собеседования с кандидатом на должность программиста 1С
- Как проходит собеседование 1С-разработчика в крупную IT-компанию
- Программисты: красный, желтый, зеленый... Определи свой цвет!
Авторские разработки
-
Анализ производительности APDEX - отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
-
Путеводитель по истории релизов - отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
-
Просмотр и анализ структуры базы данных (отчет на СКД) - отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
-
Просмотр и анализ журнала регистрации (отчет на СКД) - отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
-
Обозреватель криптографии - отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
-
Пакетная выгрузка / загрузка внешних отчетов и обработок - пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
-
Командный интерпретатор для 1С - инструмент для выполнения команд CMD / PowerShell из 1С.
Специальные предложения
чес-слово, представленные задачи что-то а ля кроссворда для пенсионера 1С-ка, которому не хрен заняться и он
Как правило, в реальной задаче, отладчик покажет где косяк если лень было включать мозг при написании кода.
Просто так решать эти кроссворды имеет смысл на пенсии.
Думаю, нет смысла давать ответы на задачи, которые легко проверить в конфигураторе.
Как это нету? Я готов заплатить старманю, просто чтобы не тратить время на проверку своих ожиданий.
Самому проверять лениво :)
Мои ответы (СПОЙЛЕР!) |
---|
Вот такие ответы получились у меня.
Первая порция задач: 1. Ложь 2. Не выполнится 3. Ложь 4. Истина 5. Ложь 6. 100 7. Не выполнится 8. 123 9. Ложь 10. Истина Вторая порция задач: 11. Неопределено 12. 110011 (но, как я понял, в самом "ХранилищеОбщихНастроек" ничего не сохранилось) 13. Ложь (Выборка.ЧислоПроверка=0,0001024104342342353485734563784653534) 14. Ложь 15. Ложь 16. Бесконечная рекурсия 17. 0 18. Будет ошибка, но не совсем ясно что вообще хотели вывести 19. Ошибка. Нельзя передавать COM объект на сервер. 20. Ошибка. Нельзя поместить COM объект во временное хранилище. Третья порция задач: 21. 28 22. Ошибка. 23. 0. 24. 1. |
А так все супер)
Небольшой комментарий |
---|
4. Все так. Ну а выведется "Сравение 1", "Сравнение 2", "Сравнение 3".
5. Все так. Ну а выведется "Сравнение 1" и все. 16. Верно. Будет ошибка переполнения стэка, при этом платформа выведет множество сообщений, сколько успеет. 18. Тут ошибка неявная при передаче странных символов с клиента на сервер в сообщении. |
Это можно объяснить техническими особенностями платформы.
Запрос к таблице значений - это такие действия платформы:
1. Создание временной таблицы
2. Загрузка данных в эту таблицу множеством запросов INSERT (в новых версиях платформы вроде бы поведение изменилось).
3. Пользуемся.
Но делать на этом этапе соединения с другими таблицами было бы неправильно или создало бы другие сложности.
Думаю, поэтому разработчики 1С и ввели эти ограничения.
Возврат ((Новый Структура) = (Новый Структура));
Выскажу свое мнение по задаче №1.
НЕ проверял на платформе.
Только свое мнение. Обсуждение приветствуется.
Команда Новый Структура - по идее создает новый объект с типом "Структура", при этом в памяти резервируется ячейка памяти (адрес) под этот объект...
Поэтому в итоге мы сравниваем два объекта с разной адресацией в памяти. Значит на выходе сравнение должно дать или ошибку или Ложь - так как объекты разные. Ошибку может дать в связи с тем, что мы не знаем что заложено в платформу при сравнении подобных объектов.
Возможно при сравнении подобных объектов вызывается исключение, и в результате появляется ошибка.
Не знаю как это "по-научному" объяснить)
Там не все так просто:
&НаКлиенте
Процедура ПередачаПоСсылкеКлиент(Параметр)
Список= Новый СписокЗначений;
Список.Добавить("привет");
Список.Добавить("привет");
Параметр = Список;
КонецПроцедуры
&НаКлиенте
Процедура ПередачаПоЗначениюКлиент1(Знач Параметр)
Список= Новый СписокЗначений;
Список.Добавить("привет");
Список.Добавить("привет");
Параметр = Список;
КонецПроцедуры
&НаКлиенте
Процедура ПередачаПоЗначениюКлиент2(Знач Параметр)
Параметр.Добавить("привет");
КонецПроцедуры
&НаСервере
Процедура ПередачаПоСсылкеСервер(Параметр)
Параметр.Добавить("привет");
КонецПроцедуры
&НаСервере
Процедура ПередачаПоЗначениюСервер(Знач Параметр)
Параметр.Добавить("привет");
КонецПроцедуры
&НаКлиенте
Процедура ПередачаПараметровКлиентСервер()
Список1= Новый СписокЗначений;
Список1.Добавить("привет");
Список2 = Список1.Скопировать();
Список3 = Список1.Скопировать();
Список4 = Список1.Скопировать();
Список5 = Список1.Скопировать();
ПередачаПоСсылкеКлиент(Список1);
ПередачаПоЗначениюКлиент1(Список2);
ПередачаПоЗначениюКлиент2(Список3);
ПередачаПоСсылкеСервер(Список4);
ПередачаПоЗначениюСервер(Список5);
Сообщить(Список1.Количество());
Сообщить(Список2.Количество());
Сообщить(Список3.Количество());
Сообщить(Список4.Количество());
Сообщить(Список5.Количество());
КонецПроцедуры
У кого какие варианты?
Все таки промахнулся)))
Мой ответ |
---|
Мой ответ был:
2, 1, 2, 1, 1 |
Ошибся в методе "ПередачаПоСсылкеСервер", почему-то решил что в итоге список не изменится :) Явная ошибка)))
Правильный ответ |
---|
2, 1, 2, 2, 1 |
Список1 - 2 (инициализировали переданный в процедуру список новым с двумя значениями)
Список2 - 1 (инициализировали параметр, оригинал остался с одним значением)
Список3 - 2 (добавили в список элемент по переданной ссылке)
Список4 - 2 (список скопировался на сервер, там ему добавили элемент, затем список вернулся обратно)
Список5 - 1 (аналогично предыдущему пункту, только сам список не возвращается на клиент)
За
Небольшое дополнение:
Список1 - передаем ссылку на объект. В процедуре присваиваем ссылке ссылку на новый объект. В точке вызова имеем новую ссылку и новый объект.
Список2 - передаем копию ссылки, объект остается один. Присваиваем копии ссылки ссылку на новый объект. Ссылка в точке вызова и изначальный объект остаются без изменения.
Список3 - передаем копию ссылки, объект остается один. Меняем по копии ссылки сам объект. В точке вызова ссылка та же, объект изменен.
Необходимо было передавать большие файлы(видео) с сервера на клиент. Когда одной командой получаешь из временного хранилища, то всё замирает и никак не реагирует. Уже собирался резать файл на кусочки двоичных данных с помощью потоков и раскладывать по временным хранилищам и на клиент отправлять массив адресов хранилищ.
Но обошлись предупреждающей табличкой :)
ХранилищеОбщихНастроек.Сохранить("МоеЗначение", "МойКлюч", Неопределено);
Плохой пример. В результате получается Неопределено . И неясно, это мы достали Неопределено из хранилища, или там просто ничего нет. Хороший пример :
ХранилищеОбщихНастроек.Сохранить("МоеЗначение", "МойКлюч", 1);
&НаКлиенте
Процедура Команда1(Команда)
стр = "Завтрак";
Задача31НаСервере(стр, стр, стр);
Сообщить(стр);
КонецПроцедуры
&НаСервере
Процедура Задача31НаСервере(Парам1, Парам2, Парам3)
Парам1 = "Обед";
Парам2 = "Ужин";
КонецПроцедуры
ПоказатьСм. также
Решение задач по мотивам статьи "30 задач. Странных и не очень" 7
Отчеты и формы Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования
Обработка по мотивам статьи: https://infostart.ru/public/1161686/
1 стартмани
04.12.2019 385 3 batsy66 9
Новый раздел на Инфостарте - Electronic Software Distribution Промо
Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.
- Низкие цены, без скрытых платежей и наценок
- Оперативная отгрузка
- Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
- Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)
Командный интерпретатор для 1С 64
Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Сервисные утилиты
Инструмент для выполнения команд CMD / PowerShell из 1С.
2 стартмани
15.11.2019 5719 10 YPermitin 39
Пакетная выгрузка / загрузка внешних отчетов и обработок 35
Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Прочие инструменты разработчика Менеджеры внешних отчетов
Пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
2 стартмани
04.11.2019 2641 9 YPermitin 21
Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо
Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!
29700 руб.
Обозреватель криптографии 41
Инструменты и обработки Системный администратор Программист Внешний отчет (ert,erf) v8 Windows Абонемент ($m) Инструментарий разработчика Защита ПО
Отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
2 стартмани
21.10.2019 3387 5 YPermitin 10
Полезные процедуры и функции для программиста 160
Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Универсальные функции
Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.
07.10.2019 11635 HostHost 23
Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо
Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).
от 11000 до 29000 рублей
Таблица значений. Нюансы 199
Статья Программист Нет файла v8 Windows Бесплатно (free) Инструментарий разработчика Практика программирования Прочие инструменты разработчика
Обзор некоторых аспектов использования общеизвестного инструмента 1С.
01.10.2019 10693 Yashazz 36
[Шпаргалка] Программное создание элементов формы 305
Статья Программист Стажер Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом Разработка
Программное создание практически всех популярных элементов формы.
06.09.2019 12318 rpgshnik 41
Готовые переносы данных из различных конфигураций 1C Промо
Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.
Агрегатные функции СКД, о которых мало кто знает 355
Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования
Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.
05.09.2019 15552 ids79 44
Три костыля. Сказ про фокусы в коде 124
Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка
Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.
03.09.2019 10530 YPermitin 69
Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо
Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.
29700 руб.
Анализ производительности APDEX 65
Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)
Отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
31.08.2019 4102 93 YPermitin 7
Отслеживание выполнения фонового задания 143
Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.
17.08.2019 12699 ids79 16
Подборка программ для взаимодействия с ЕГАИС Промо
ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.
Путеводитель по истории релизов 37
Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) WEB
Отчет по истории выпуска релизов и анализа информации по обновлениям.
2 стартмани
13.08.2019 4408 7 YPermitin 15
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 262
Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования
Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.
08.08.2019 18012 ids79 31
Вакансия Программист, аналитик, эксперт 1С Промо
Приглашаем к сотрудничеству квалифицированных специалистов 1С из любых регионов, готовых работать в удаленном режиме, а также с возможностью при необходимости выезда к заказчику.
Фоновое выполнение кода в 1С - это просто 124
Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка
Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.
02.08.2019 12746 avalakh 21
Процедура ПриКомпоновкеРезультата 288
Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования
Коллекция кода
1 стартмани
26.07.2019 14602 4 vasilev2015 54
Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо
Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.
24700 руб.
СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 141
Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования
Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.
26.07.2019 16146 ids79 8
Просмотр и анализ структуры базы данных (отчет на СКД) 121
Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика
Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
5 стартмани
24.07.2019 8436 93 YPermitin 25
Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо
Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Предоставляем техподдержку по всем вопросам данного обмена. Можем подключиться к вам удаленно для разбора ситуаций. Оперативно обновляем при выходе новых релизов 1С. Бесплатные обновления в течение полугода.
19700 руб.
СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 156
Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования
Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.
17.07.2019 13582 ids79 27
Регистры сведений. За кулисами 129
Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка
Небольшие заметки по внутреннему устройству регистров сведений.
09.07.2019 10620 YPermitin 12
Перенос данных БП 2.0 => УТ 11 / КА 2 / ERP 2 (перенос остатков, документов и справочников из "1С:Бухгалтерия предприятия 8", ред. 2.0 в "1С:Управление торговлей 8", ред.11 / КА 2 / ERP 2). Обновлено до УТ 11.4.10.х, КА 2.4.10.х, ERP 2.4.10.х! Промо
Перенос позволяет загрузить в УТ 11 / КА 2 / ERP 2 документы за выбранный период, справочную информацию и остатки по счетам бух. учета. Переносятся остатки денежных средств, взаиморасчетов, остатки товаров и материалов на складах. Переносятся девятнадцать основных видов документов за выбранный период и вся нормативно-справочная информация. Есть фильтр по организации. Если нужно переносить что-то дополнительно, то обычно бесплатно дорабатываю правила (перед покупкой согласуйте необходимые доработки).
29700 руб.
"Меньше копипаста!", или как Вася универсальную процедуру писал 183
Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка
Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.
04.07.2019 9401 SeiOkami 49
Создание отчетов с помощью СКД - основные понятия и элементы 217
Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы
Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.
25.06.2019 23735 ids79 17
Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо
Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.
29700 руб.
Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 179
Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка
Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.
11.06.2019 13598 dmurk 134
Как проходит собеседование 1С-разработчика в крупную IT-компанию 16
Статья Программист Руководитель проекта Нет файла v8 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free) Личная эффективность
Вот уже год, как я собеседую кандидатов на должность разработчика 1С. В марте я выступал на конференции для разработчиков и консультантов во Владимире, где рассказал, что нужно знать и уметь, чтобы стать программистом 1С в современной IT-компании.
21.05.2019 9316 lexian 370
Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU с 27.11 по 04.12 Промо
Оформляете заказ на 1С лицензии или конфигурации. Получаете 35% от стоимости на счет в профиле INFOSTART.RU. Выбираете сервисы и продукты на сумму кэшбэка.
Регистры накопления. Структура хранения в базе данных 178
Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка
Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.
16.05.2019 21154 YPermitin 27
Выполнение внешней обработки в фоновом задании 149
Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка
Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).
11.05.2019 13032 Eret1k 23

Просмотры 3923
Загрузки 0
Комментарии 66
Создание 02.12.19 07:55
Обновление 02.12.19 07:55
№ Публикации 1161686
Рубрики Практика программирования
Кому
Программист ,
Стажер
Тип файла Нет файла
Платформа Платформа 1С v8.x (все механизмы)
Конфигурация Не имеет значения
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
