Имеется массив из n различных целых чисел от 0 до n. Массив не упорядочен. Необходимо за один цикл определить недостающее число. Привести код на встроенном языке 1С.
нМассив = Новый Массив;
нМассив.Добавить(0);
нМассив.Добавить(4);
нМассив.Добавить(3);
нМассив.Добавить(2);
нМассив.Добавить(1);
СуммаИмеющихся = 0;
СуммаВсех = 0;
Количество = нМассив.Количество();
Для Сч = 0 По Количество Цикл
Если сч < Количество Тогда
СуммаИмеющихся = СуммаИмеющихся + нМассив[Сч];
КонецЕсли;
СуммаВсех = СуммаВсех + Сч;
КонецЦикла;
НедостающееЧисло = СуммаВсех - СуммаИмеющихся;
Сообщить("Недостающее число:" + Строка(НедостающееЧисло));
В некоторой абстрактной базе существует справочник «Контрагенты». По требованию заказчика было решено внедрить в базу ведение статусов контрагентов. Для чего был создан независимый периодический регистр сведений «Статусы контрагентов». Измерение регистра: Контрагент. Ресурс: Статус. В базе контрагент фигурирует в документах поступление товаров и услуг. Напишите запрос, позволяющий получить выборку вида [Документ поступление товаров и услуг, Контрагент из документа, Актуальный статус контрагента из документа на дату документа].
ВЫБРАТЬ
Поступления.Дата
Поступления.Контрагент,
СтатусыКонтрагентов.Статус
ИЗ
Документ.ПоступлениеТоваровИУслуг КАК Поступления
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыКонтрагентов КАК СтатусыКонтрагентов
ПО Поступления.Контрагент = СтатусыКонтрагентов.Контрагент
И (СтатусыКонтрагентов.Период В
(ВЫБРАТЬ МАКСИМУМ(Статусы.Период)
ИЗ
РегистрСведений.СтатусыКонтрагентов КАК Статусы
ГДЕ
Статусы.Период <= Поступления.Дата
И Статусы.Контрагент = Поступления.Контрагент
))
Имеется запрос вида:
ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Наименование
ИЗ Справочник.Номенклатура КАК Номенклатура
УПОРЯДОЧИТЬ ПО Номенклатура.Наименование
Допишите запрос, чтобы помимо Ссылка и Наименование присутствовало поле НомерСтроки – счетчик строк выборки начиная с 1.
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Наименование,
КОЛИЧЕСТВО(НоменклатураДубль.Ссылка) КАК НомерСтроки
ИЗ
Справочник.Сотрудники КАК Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК НоменклатураДубль
ПО Номенклатура.Ссылка >= НоменклатураДубль.Ссылка
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
УПОРЯДОЧИТЬ ПО Номенклатура.Наименование
Требуется заполнить табличную часть товары данными по приходам привилегированных поставщиков за период. Укажите ошибки представленного решения, и способы их устранения.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| уатПартииТоваровНаСкладах.Номенклатура,
| уатПартииТоваровНаСкладах.Количество,
| уатПартииТоваровНаСкладах.Регистратор
|ИЗ
| РегистрНакопления.уатПартииТоваровНаСкладах КАК уатПартииТоваровНаСкладах
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| уатПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура
| ИЗ
| Документ.уатПоступлениеТоваровУслуг.Товары КАК уатПоступлениеТоваровУслугТовары
| ГДЕ
| уатПоступлениеТоваровУслугТовары.Ссылка.Контрагент В(&ПривелегированныеПоставщики)) КАК уатПоступлениеТоваровУслугТовары
| ПО уатПартииТоваровНаСкладах.Номенклатура = уатПоступлениеТоваровУслугТовары.Номенклатура
|ГДЕ
| уатПартииТоваровНаСкладах.ВидДвижения = &ВидДвижения
| И уатПартииТоваровНаСкладах.Период МЕЖДУ &НачПериод И &КонПериода";
Запрос.УстановитьПараметр("ПривелегированныеПоставщики", ПривелегированныеПоставщики);
Запрос.УстановитьПараметр("ВидДвижения", ВидДвиженияНакопления.Приход);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
СтрокаТоваров = Товары.Добавить();
СтрокаТоваров.Номенклатура = Выборка.Номенклатура;
СтрокаТоваров.Артикул = Выборка.Номенклатура.Артикул;
СтрокаТоваров.Количество = Выборка.Количество;
СтрокаТоваров.Сумма = Выборка.Количество * РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(Выборка.Регистратор.Дата, Новый Структура("Номенклатура", Выборка.Номенклатура)).Цена;
КонецЦикла;
// Не установлен параметр по организации, скорей всего в уатПартииТоваровНаСкладах есть ресурс Организация
// Нет необходимости во вложенном запросе соединяться с тч документов, достаточно уатПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
// Так же необходимо добавить справочник номенклатуры ПО уатПартииТоваровНаСкладах.Номенклатура = Номенклатура.Ссылка, для вывода артикула в выбираемые поля
// Цену получить в запросе, аналогично как это делалось в Задаче 2
// Сумму считать формулой в выбираемом поле уатПартииТоваровНаСкладах.Количество * ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)
// В цикле обхода ЗаполнитьЗначениеСвойств(СтрокаТовары, Выборка)