Имя: Пароль:
1C
1С v8
Помогите с кодом новичку (
0 Gorbach
 
02.11.18
10:08
Помогите плиз


a.   Создаем и заполняем массив, элементом которого является структура вида
i.   День недели – (понедельник  - воскресенье)
ii.   День месяца - (1- Количество дней в месяце)
iii.   Количество мороженное
b.   Выводим на экран данные из массива в формате «День месяца день недели: колво мороженное».
2.
По кнопке:
a.   Выводим информацию из собранного ранее массива, сколько раз прием выпадает на будни и общую сумму принятого мороженное в будни.
b.   Выводим информацию из собранного ранее массива, сколько раз прием выпадает на выходные и общую сумму принятого мороженное в выходные.
c.   Выводим количество суббот в месяце.
1 Волшебник
 
02.11.18
10:11
Задание при приёме на работу? Как же ты дальше работать будешь?
2 Волшебник
 
02.11.18
10:12
слово "мороженое" пишется с одной "н"
3 DrWatson
 
02.11.18
10:13
А в чем вопрос? Весь код написать?
4 DrWatson
 
02.11.18
10:16
Всё что нужно для выполнения этого задания есть в контекст-помощнике 1С. Разве что только надо знать, что есть переменные, циклы, условия, массивы, структуры.
5 craxx
 
02.11.18
10:16
(2) человек ясно не русский, ибо не склоняет слово "мороженое", и пишет его с ошибкой
(1) судя по всему, задание на контрольную для студента
6 DrWatson
 
02.11.18
10:16
(4) синтаксис-помощник
7 tgu82
 
02.11.18
10:22
Можно ведь и через таблицу значений. Зачем именно структура да еще и массив?
8 Gorbach
 
02.11.18
10:25
Студент
Такое вот задание, именно с массивом
не получается
9 Волшебник
 
02.11.18
10:26
(8) Учись, студент, учись.
10 Cool_Profi
 
02.11.18
10:26
(5) А может, у него мороженное мясо?
11 Малыш Джон
 
02.11.18
10:27
(0) а что не получается-то?
12 Gorbach
 
02.11.18
10:30
Как массив правильно заполнить?
13 Волшебник
 
02.11.18
10:31
(10) Всё может быть. Мы же не знаем, что придёт в голову безумному профессору.
14 Gorbach
 
02.11.18
10:31
Ну или дайте ссыль где почитать, не понял тему
15 ejikbeznojek
 
02.11.18
10:33
(11) Вот ты задаёшь ему такие вопросы, а потом вот такие темы появляются))
Все ли 1С-ники самовлюбленны и высокомерны?

(12)
Если нужно заполнить чем нибудь.
То создаёшь массив, и в цикле заполняешь его структурами
16 Митяйский
 
02.11.18
10:33
(14) выдели в конфигураторе слово Массив в твоем коде и нажми ctrl+f1

все что можно сделать с твоим массивом, будет там перечислено
17 ejikbeznojek
 
02.11.18
10:35
(14) https://helpme1c.ru/massivy-v-yazyke-1s-8-v-primerax
Вот первая попавшаяся ссылка)

Отдельно нагугли ещё про структуры и соедини 2 знания в 1 цикл))
18 Пробел
 
02.11.18
10:59
(12) Для начала Вам нужно понять что такое массив и что такое структура.

Самая простая структура - это пара из ключа и значения. В Вашем случае:

ЭлементМассива = Новый Структура;
ЭлементМассива.Добавить("ДеньНедели", "Четверг");

Удобство структуры в том что по ключу можно получить значение:

ПервыйДеньЗапоя = ЭлементМассива.ДеньНедели;

В переменной ПервыйДеньЗапоя будет значение "Четверг".

Значение может быть любым. То есть в строчке "ЭлементМассива.Добавить()" вместо "Четверг" может быть число, ссылка, дата, другая структура...

С массивом все еще проще. Это последовательность значений, к которым можно получить доступ по порядковому номеру (индексу) в последовательности. Значения тоже могут быть любыми.

Масс = Новый Массив;
Масс.Добавить(ЭлементМассива1);
Масс.Добавить(ЭлементМассива2);

и так далее.Потом

элемент1 = Масс[0];
элемент2 = Масс[1];
19 Gorbach
 
02.11.18
11:24
(18) То есть примерно так?
Для Каждого ЭлементМассива Из МассивМороженного Цикл
        ЭлементМассива = Новый Структура;
        ЭлементМассива.Добавить("ДеньНедели", "Четверг");
        ЭлементМассива.Добавить("ДеньМесяца", "4");
        Если чслСч%7 = 0 ИЛИ чслСч%7 = 6 Тогда
        ЭлементМассива.Добавить("Мороженое",чслМороженоеВВыходные);
    Иначе
        ЭлементМассива.Добавить("Мороженое", чслМороженоеВБудни);
    КонецЦикла;
20 Ёпрст
 
02.11.18
11:31
(19) проще делать цикл по дате, и потом из функции формат получать свои четверги и пятницы

Формат(ТекущаяДата(),"ДФ=дддд") = "пятница"
21 Пробел
 
02.11.18
11:38
(19) можно и так.

А вообще, если следовать букве задачи, Вам просто нужно создать массив и заполнить его несколькими структурами со случайными данными. Количество структур и значения в них Вы выбираете сами случайным образом, учитывая указания в задаче.

То есть нет никакого смысла переусложнять циклами.

МассивМороженного = Новый Массив;

ЭлементМассива1 = Новый Структура;
ЭлементМассива1.Добавить("ДеньНедели", %СлучайныйДень%);
ЭлементМассива1.Добавить("ДеньМесяца", %СлучайнаяЦифра%);       ЭлементМассива1.Добавить("Мороженое",%СлучайнаяЦифра%);

МассивМороженного.Добавить(ЭлементМассива1);

ЭлементМассива2 = Новый Структура;  

и так далее.
22 Пробел
 
02.11.18
11:41
Основное веселье у Вас будет с алгоритмами кнопок во второй части :)
23 Ёпрст
 
02.11.18
11:41
(21) не угадал:
>>> Выводим количество суббот в месяце.
24 Ёпрст
 
02.11.18
11:41
ему нужны все даты с некоего диапазона
25 bolder
 
02.11.18
11:42
(21) И как потом из этого получить кол-во суббот))Пятница штоле?))
26 VladZ
 
02.11.18
11:43
(0) Зачем тебе это? Одумайся!!! Потом будет поздно...
27 Пробел
 
02.11.18
11:47
(24) Похоже Вы правы, я сначала решил что в скобках приведены примеры значений а не их диапазон.
28 Gorbach
 
04.11.18
11:11
Ребят, у меня вроде бы получилась 1 часть
Спасибо за подсказки
Думаю, что лучше спросить, чем сидеть и не знать

МассивМяса= Новый Массив;
    
    
//заполняем массив стуктурами
   Для Счетчик =  Счетчик1 по чслКоличестовДней Цикл
      //Структура
      
      НашаСтруктура = Новый Структура("ДеньНедели,ДеньМесяца,КоличествоМяса");
      
      НашаСтруктура.ДеньНедели = Формат(ТекДата,"ДФ=dddd");  // выведем дни недели
      ТекДата = ТекДата + ОдинДень*чслПериодПриема;
      
      НашаСтруктура.ДеньМесяца = Счетчик + 1;
      
  Если НашаСтруктура.ДеньНедели = "суббота" ИЛИ  НашаСтруктура.ДеньНедели = "воскресенье" Тогда
      НашаСтруктура.КоличествоМяса = чслМясаВВыходные;
      
  Иначе
      НашаСтруктура.КоличествоМяса = чслМясаВБудни;
  КонецЕсли;
  
// добавляем стуктуру в массив      
      МассивМяса.Добавить(НашаСтруктура);
      Счетчик = Счетчик + 1;
  КонецЦикла;

// Вывод массива

Для каждого Стр Из МассивМяса Цикл
      Сообщить(" " + (Стр.ДеньМесяца)+ " " +(Стр.ДеньНедели) + ":"+ (Стр.КоличествоМяса));    
    
  КонецЦикла;
29 Gorbach
 
04.11.18
11:16
Подскажите, правильное ли направление для 2 части задачи?

тзМясо = Новый ТаблицаЗначений;

//добавим данные приним Мясо в вых

    тзМясо.Колонки.Добавить("МясоВых");
    тзМясо.Колонки.Добавить("МясоБудни");
    
    новЭлемент = тзМясо.Добавить();
Если НашаСтруктура.ДеньНедели = "суббота" ИЛИ  НашаСтруктура.ДеньНедели = "воскресенье" Тогда
    Для Каждого ЭлМассива Из  МассивМясо Цикл
               новЭлемент = тзМясо.Добавить();

Если ЭлМассива  =  чслМясоВВыходные Тогда
                            новЭлемент.МясоВых = чслМясоВВыходные;
                        
                    ИначеЕсли     ЭлМассива =  чслМясоВБудни Тогда
                        новЭлемент.МясонБудни = чслМясоВБудни;
                            
                КонецЕсли;
                
         КонецЦикла;
        
Сообщить(тзМясо.Итог("МясоВых"));