Имя: Пароль:
1C
1С v8
выборка животных по возрастной группе
, ,
0 111serzh
 
22.07.16
16:40
Задача создать кнопку в документе ведомость взвешивания животных, при помощи которой производилась выборка животных подходящих выбранной возрастной группе в разделе учетная группа.  Вывод в табличную часть животных подходящих к выбранной учетной группе.
Учетные группы делятся на определенный период времени (по возрасту): бычки 0-2, бычки 2-6, бычки 6-12, телки  0-2,телки 2-6, телки 6-12.
В справочнике Интеко КРС группового учета создал реквизиты: пол животного, возраст с, возраст по.
В справочнике КА_скот создал реквизиты: пол животного,  дата рождения.
Опыта  работы в 1с практически нет.
Заранее спасибо.
53 111serzh
 
25.07.16
17:22
не получается,чистит всю таблицу
54 111serzh
 
26.07.16
12:28
Подскажите как можно сделать очистку табличной части после выполнения запроса. При выборе нового запроса? Заранее спасибо..
55 Fish
 
26.07.16
13:04
(54) ТабличнаяЧасть.Очистить();
56 111serzh
 
26.07.16
13:15
Спасибо большое...
Все получилось.
57 111serzh
 
26.07.16
16:09
Подскажите, если возможно показать пример по работе в ведомости взвешивания животных создал кнопку "ввести привес". которая выполняет действие ввода пользователем определенного числа привеса и он должен разнисти этот привес по всем позициям. Заранее спасибо.
58 111serzh
 
26.07.16
16:13
Процедуру создал  ПерезаполнитьПредыдущийВесИПривесы();
она работает
59 jsmith
 
26.07.16
16:18
Привес = 0;
    Если ВвестиДату(Привес, "Введите привес", 15, 3) Тогда
        ПривесСтроки = Привес / Объект.ТабличнаяЧасть.Количество();
        Для Каждого Строка Из Объект.ТабличнаяЧасть Цикл        
            Строка.Привес = ПривесСтроки;                
        КонецЦикла;                
    КонецЕсли;
60 jsmith
 
26.07.16
16:18
Ой. ВвестиЧисло
61 111serzh
 
26.07.16
16:27
Процедура ВвестиПривес(Кнопка)
     ПерезаполнитьПредыдущийВесИПривесы();
      Привес = 0;
    Если ВвестиЧисло(Привес, "Введите привес", 15, 3) Тогда
        ПривесСтр = Привес / Привес.ТЗ.Количество();
        Для Каждого Стр Из Привес.ТЗ Цикл        
            Стр.Привес = ПривесСтр;                
        КонецЦикла;                
    КонецЕсли;
    
     КонецПроцедуры
Ругается
{Документ.КА_ВедомостьВзвешиванияЖивотных.Форма.ФормаДокумента.Форма(73)}: Значение не является значением объектного типа (ТЗ)
        ПривесСтр = Привес / Привес.ТЗ.Количество();
62 jsmith
 
26.07.16
16:29
У меня щас рукалицо в кубе будет.
Как ты вот это
ПривесСтроки = Привес / Объект.ТабличнаяЧасть.Количество();
превратил в это
ПривесСтр = Привес / Привес.ТЗ.Количество();
Умный типа?
63 jsmith
 
26.07.16
16:30
Хотя бы так писал бы
ПривесСтр = Привес / ТЗ.Количество();

Как у тебя таб. часть наз-ся я хз
65 111serzh
 
26.07.16
17:59
Процедура ВвестиПривес(Кнопка)
    
          
        Взвешивание.Очистить();
         ПерезаполнитьПредыдущийВесИПривесы();
      Привес = 0;
    Если ВвестиЧисло(Привес, "Введите привес", 15, 3) Тогда
        ПривесСтр = Привес / Привес.Взвешивание.Количество();
        Для Каждого Стр Из Привес.Взвешивание Цикл        
            Стр.Привес = Взвешивание.ВыгрузитьКолонку(Привес);                
        КонецЦикла;                
    КонецЕсли;
    
      КонецПроцедуры
Ругается
{Документ.КА_ВедомостьВзвешиванияЖивотных.Форма.ФормаДокумента.Форма(76)}: Значение не является значением объектного типа (Взвешивание)
        ПривесСтр = Привес / Привес.Взвешивание.Количество();
66 111serzh
 
27.07.16
10:20
Добрый день не могу разобраться, подскажите
Процедура ВвестиПривес(Кнопка)
                      Привес = 0;
    Если ВвестиЧисло(Привес, "Введите привес", 15, 3) Тогда
       ПривесСтроки = Привес / Привес.Взвешивание.Количество();
        Для Каждого Строка Из Привес.Взвешивание Цикл        
            Строка.Привес = ПривесСтроки;                
        КонецЦикла;                
    КонецЕсли;
    ПерезаполнитьПредыдущийВесИПривесы();
      КонецПроцедуры

Ругается не понимаю....
{Документ.КА_ВедомостьВзвешиванияЖивотных.Форма.ФормаДокумента.Форма(72)}: Значение не является значением объектного типа (Взвешивание)
       ПривесСтроки = Привес / Привес.Взвешивание.Количество();
67 DDwe
 
27.07.16
10:36
(66) "Привес" это у тебя что?
68 DDwe
 
27.07.16
10:38
Будешь молчать как партизан?
69 111serzh
 
27.07.16
10:40
Строка в Взвешивание
70 DDwe
 
27.07.16
10:42
(69) Строка в Взвешивании это видимо "Привес.Взвешивание" это.
А просто "Привес" что такое?
71 DDwe
 
27.07.16
10:43
Вот в этом "Привес = 0;  ....... Привес.Взвешивание.Количество();"
Тебя ничего не смущает?
72 DDwe
 
27.07.16
10:44
И отсюда "Строка.Привес = ПривесСтроки;" убери слово "строка".
73 DDwe
 
27.07.16
10:44
(72) Равно как и выше тоже.
74 111serzh
 
28.07.16
15:27
Процедура ВвестиПривес(Кнопка)
           ПерезаполнитьПредыдущийВесИПривесы();

         Запрос = Новый Запрос();
         Запрос.Текст = "ВЫБРАТЬ
                        |    КА_МассаСкота.Скот
                        |ИЗ
                        |    РегистрСведений.КА_МассаСкота КАК КА_МассаСкота";
        
        
     Привес=Взвешивание.ВыгрузитьКолонки("Привес");
         Запрос.УстановитьПараметр("Привес", Привес);
        ТабВзвешивания = Запрос.Выполнить().Выгрузить();
        Дельта = Null;    
                 Если ВвестиЧисло(Дельта, "Введите привес", 15, 3) Тогда
                Для Каждого Строка Из Взвешивание Цикл        
                
              ПривесСтроки =Дельта + Строка.Привес;  
                                                          //Строка привес, полученное зна                                                                                              
                 Строка.Привес = ПривесСтроки;
                Строка.МассаПред =            ;         // Строка масса пред дает значение из Регистра сведений.КА_МассаСкот = 550. И автаматом ставит в привесе -550. Как прописать что бы был Привес = 0.        

                       Строка.Масса = Строка.МассаПред + ПривесСтроки;
                 КонецЦикла;  
                
               КонецЕсли;
          КонецПроцедуры
75 111serzh
 
28.07.16
15:33
Все не нужно у меня получилось
Процедура ВвестиПривес(Кнопка)
           ПерезаполнитьПредыдущийВесИПривесы();

         Запрос = Новый Запрос();
         Запрос.Текст = "ВЫБРАТЬ
                        |    КА_МассаСкота.Скот
                        |ИЗ
                        |    РегистрСведений.КА_МассаСкота КАК КА_МассаСкота";
        
        
     Привес=Взвешивание.ВыгрузитьКолонки("Привес");
         Запрос.УстановитьПараметр("Привес", Привес);
        ТабВзвешивания = Запрос.Выполнить().Выгрузить();
        ПривесСтроки = 0;    
                 Если ВвестиЧисло(ПривесСтроки, "Введите привес", 15, 3) Тогда
                Для Каждого Строка Из Взвешивание Цикл        
                
                
                                                                                                                                                  
                 Строка.Привес = ПривесСтроки;
                
                       Строка.Масса = Строка.МассаПред + ПривесСтроки;
                 КонецЦикла;  
                
               КонецЕсли;
          КонецПроцедуры
76 111serzh
 
28.07.16
16:09
кнопка установить привес
вводится число и делится на все строки тз поровну.
Процедура РаспределитьПривес(Кнопка)
        ЗапросПривес = Новый Запрос();    
          ЗапросПривес.Текст = "ВЫБРАТЬ
                               |    КА_МассаСкота.Масса
                               |ИЗ
                               |    РегистрСведений.КА_МассаСкота КАК КА_МассаСкота";
         Привес=Взвешивание.ВыгрузитьКолонки("Привес");                      
          ЗапросПривес.УстановитьПараметр("Привес", Привес);
          ТабВзвешивания = ЗапросПривес.Выполнить().Выгрузить();
            ПривесСтр = 0;
            Если ВвестиЧисло (ПривесСтр, "Введите привес", 15, 2) Тогда
                Для Каждого Строка Из Взвешивание Цикл
                    Строка.Привес = ПривесСтр / Строка.Привес;     //как правильно прописать что бы  число поделилось на равные части и разнеслось по всем стр Привес
                    Строка.Масса = Строка.МассаПред + ПривесСтр;
                КонецЦикла;
            КонецЕсли;
    КонецПроцедуры
77 111serzh
 
28.07.16
16:10
Подскажите, заранее спасибо
78 DDwe
 
28.07.16
16:16
(77) Не, ну так нельзя тролить...

Вот почему прежде чем начинать писать, не получить хотя бы базовое профильное образование?
И выброси этот бред из (76)
79 111serzh
 
28.07.16
16:19
Не понял, поясните.
80 DDwe
 
28.07.16
16:22
(79) Какие слова тебе не понятны?
81 111serzh
 
28.07.16
16:26
Как нужно сделать что бы делился результат запроса и разносился по всем строкам привес?
82 DDwe
 
28.07.16
16:30
(81) Нужно сесть, взять себя в руки и написать, что бы привес разносился.
83 111serzh
 
28.07.16
16:34
Он разносится только не делится.Ладно разберусь. Спасибо
84 111serzh
 
28.07.16
17:10
Подскажите форму деления числа на количество строк
85 DDwe
 
29.07.16
03:59
(84) Что простите?
86 111serzh
 
29.07.16
09:20
У меня задача, введенного число произвести деление на общее количество строк.
87 Mankubus
 
29.07.16
09:23
(86) формула: ВведенноеЧисло/КоличествоСтрок
88 DDwe
 
29.07.16
09:25
(87) +100 ))))
89 Горогуля
 
29.07.16
09:32
(87) _общее_ количество строк. без общего не взлетит
90 Vladal
 
29.07.16
09:37
(87) (88) Может там надо распределить введенное число на количество строк со значимыми значениями или выборочно не по всей таблице....
91 Vladal
 
29.07.16
09:38
Недавно интересовался этой темой. Несколько интересных публикаций:
v8: Распределение сумм в запросе пропорционально результатам выборки
http://catalog.mista.ru/public/16630/
92 111serzh
 
29.07.16
09:39
Можете подсказать как она выглядит? Написать пример
93 DDwe
 
29.07.16
09:45
(92) Кто она?
94 Vladal
 
29.07.16
09:47
// Функция выполняет пропорциональное распределение суммы в соответствии с заданными коэффициентами распределения
//
// Параметры:
//        ИсхСумма - распределяемая сумма
//        МассивКоэф - массив коэффициентов распределения
//        Точность - точность округления при распределении. Необязателен.
//
//    Возврат:
//        МассивСумм - массив размерностью равный массиву коэффициентов, содержит
//            суммы в соответствии с весом коэффициента (из массива коэффициентов)
//          В случае если распределить не удалось (сумма = 0, кол-во коэф. = 0,
//          или суммарный вес коэф. = 0), тогда возвращается значение Неопределено
//
Функция РаспределитьПропорционально(Знач ИсхСумма, МассивКоэф, Знач Точность = 2) Экспорт
    
    Если МассивКоэф.Количество() = 0 Или ИсхСумма = 0 Или ИсхСумма = Null Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    ИндексМакс = 0;
    МаксЗнач   = 0;
    РаспрСумма = 0;
    СуммаКоэф  = 0;
    
    Для К = 0 По МассивКоэф.Количество() - 1 Цикл
        
        МодульЧисла = ?(МассивКоэф[К] > 0, МассивКоэф[К], - МассивКоэф[К]);
        
        Если МаксЗнач < МодульЧисла Тогда
            МаксЗнач = МодульЧисла;
            ИндексМакс = К;
        КонецЕсли;
        
        СуммаКоэф = СуммаКоэф + МассивКоэф[К];
        
    КонецЦикла;
    
    Если СуммаКоэф = 0 Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    МассивСумм = Новый Массив(МассивКоэф.Количество());
    
    Для К = 0 По МассивКоэф.Количество() - 1 Цикл
        МассивСумм[К] = Окр(ИсхСумма * МассивКоэф[К] / СуммаКоэф, Точность, 1);
        РаспрСумма = РаспрСумма + МассивСумм[К];
    КонецЦикла;
    
    // Погрешности округления отнесем на коэффиецент с максимальным весом
    Если Не РаспрСумма = ИсхСумма Тогда
        МассивСумм[ИндексМакс] = МассивСумм[ИндексМакс] + ИсхСумма - РаспрСумма;
    КонецЕсли;
    
    Возврат МассивСумм;
    
КонецФункции
96 111serzh
 
29.07.16
09:53
Процедура РаспределитьПривес(Кнопка)
        ЗапросПривес = Новый Запрос();    
          ЗапросПривес.Текст = "ВЫБРАТЬ
                               |    КА_МассаСкота.Масса
                               |ИЗ
                               |    РегистрСведений.КА_МассаСкота КАК КА_МассаСкота";
         Привес=Взвешивание.ВыгрузитьКолонки("Привес");                      
          ЗапросПривес.УстановитьПараметр("Привес", Привес);
          ТабВзвешивания = ЗапросПривес.Выполнить().Выгрузить();
            ПривесСтр = 0;
            Если ВвестиЧисло (ПривесСтр, "Введите привес", 15, 2) Тогда
                Для Каждого Строка Из Взвешивание Цикл
                    Строка.Привес = ПривесСтр / КоличествоСтрок;    ///? как правильно прописать эту строку
                    Строка.Масса = Строка.МассаПред + Строка.Привес;
                КонецЦикла;
            КонецЕсли;
    КонецПроцедуры
97 Mankubus
 
29.07.16
09:54
(96) Количество строк это Взвешивание.Количество()
Для распределения используй процедуру (94)
98 Mankubus
 
29.07.16
09:55
Для Каждого Строка Из Взвешивание Цикл
                    Строка.Привес = ПривесСтр / КоличествоСтрок;    ///? как правильно прописать эту строку

                    Строка.Масса = Строка.МассаПред + Строка.Привес;
                КонецЦикла;

это выброси
99 Vladal
 
29.07.16
09:57
В типовых есть функция ОбщегоНазначения.ОкруглитьСУчетомПогрешности
Переменная в третьем параметре как раз и хранит накопленную погрешность.
Пример:

Перем Погрешность;
Цикл
...
    Сумма = ОбщегоНазначения.ОкруглитьСУчетомПогрешности(Сумма, 2, Погрешность);
...
КонецЦикла;
100 111serzh
 
29.07.16
10:00
Мне нужно что бы при нажатие кнопки пользователь внес число к примеру 100 и одно поделилось на кол. строк Привес и результат деления разнесся по всем строка привеса
К примеру 500/ 10 строк = 50 в каждую строку
101 111serzh
 
29.07.16
10:01
Не пойму не как. В интернете нет не чего.
102 DDwe
 
29.07.16
10:06
Да, он издевается над вами... нельзя быть таким ))
103 Fish
 
29.07.16
10:10
Пятничная ветка подошла к своей второй пятнице?
104 DDwe
 
29.07.16
10:12
(103) До осени дотянет?
105 Fish
 
29.07.16
10:16
(104) По осени наверное стадо прирежут и проблема решится сама собой :)
106 111serzh
 
29.07.16
14:54
Подскажите как в запросе ДатуСмерти сравнить с концом периода?
107 Горогуля
 
29.07.16
15:11
(106) ДатаСмерти=КонецПериода(...)
108 111serzh
 
29.07.16
15:18
|    И РАЗНОСТЬДАТ(КА_Скот.ДатаСмерти, &ДатаДокумента, ГОД) = &ВозрастПо";
109 111serzh
 
10.08.16
13:06
Добрый день
Как сделать что бы в колонке "номер бирки" документа "приплод"создался номер, от последнего номера из справочника "скот" название колонки"код".
Что бы не было повтора.
110 Горогуля
 
10.08.16
13:09
(109) найти максимум, добавить единицу
111 111serzh
 
10.08.16
13:10
Как это прописать?
112 Fish
 
10.08.16
13:11
(111) Номер = Максимальныйномер + 1.
113 111serzh
 
10.08.16
13:15
Как 1С вычисляет МАКСИМУМ по ссылочному полю?
Нужно брать последнее значение из справочник скот. и добавлять 1 и записывать в документе приплод в номер бирки.
114 Fish
 
10.08.16
13:16
(113) Ты хочешь прибавить 1 к ссылке? И что ты ожидаешь получить в результате?
115 Горогуля
 
10.08.16
13:16
(113) а что такое последнее значение из справочник скот?
116 Горогуля
 
10.08.16
13:17
(114) он хочет номер от последнего. а максимум+1 - это уже наша самодеятельность ;)
117 111serzh
 
10.08.16
13:20
В справочнике скот есть реквизит КОД в котором записан номер коровы нужно что бы от последнего номера коровы создался новый номер +1 в документе ПРИПЛОД в НОМЕР БИРКИ
118 Fish
 
10.08.16
13:21
(117) Ну так и выбирай максимальный номер, и прибавляй к нему единицу. При чём здесь " МАКСИМУМ по ссылочному полю"?
119 Горогуля
 
10.08.16
13:24
(117) давай по шагам.
1. от последнего номера коровы - где его брать?
2. создался новый номер +1 - как добавить единичку?
3. документе ПРИПЛОД в НОМЕР БИРКИ - почему в документе?
120 111serzh
 
10.08.16
13:48
1 Справочник Скот реквизит Код. в нем хранятся номера коров.
2 Последний номер (Код)  0212. тогда 0212+1 и в документе приплод получить номер бирки = 0213.
121 Горогуля
 
10.08.16
13:50
отлично. как найти максимум коровы?
122 Горогуля
 
10.08.16
13:50
0212 - похоже на строку. как потом добавлять единицу?
123 111serzh
 
10.08.16
13:56
Нам не нужны сами данные коровы, нужен только номер.
Затея в чем создается кнопка(ДобавитьЭлементыСправочника) в Приплод, которая выполняет действие во всех строках созданых пользователем при нажатие на кнопку она создает номер коровы для каждой строки Номер бирки. Должна происходить проверка на повтор значения с справочником Скот в реквизите Код.
124 111serzh
 
10.08.16
13:57
Процедура ДобавитьЭлементыСправочника(Кнопка)
            ТабличнаяЧасть = Приплод;
            Запрос = Новый Запрос;
            Запрос.УстановитьПараметр("Код", Ссылка);
        Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДата());
              
  
                  Запрос.УстановитьПараметр("Ссылка", Ссылка);
                       Запрос.Текст =    "ВЫБРАТЬ
                                         |    КА_Скот.Код,
                                         |    КА_ПриплодПриплод.НомерБирки
                                         |ИЗ
                                         |    Документ.КА_Приплод.Приплод КАК КА_ПриплодПриплод
                                         |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КА_Скот КАК КА_Скот
                                         |        ПО КА_ПриплодПриплод.Скот = КА_Скот.Ссылка
                                         |
                                         |СГРУППИРОВАТЬ ПО
                                         |    КА_Скот.Код,
                                         |    КА_ПриплодПриплод.НомерБирки";                                                                             
                 
      РезультатЗапроса = Запрос.Выполнить().Выгрузить();

Вот пробовал....
125 Горогуля
 
10.08.16
13:58
номер коровы не является данными коровы?
126 Горогуля
 
10.08.16
13:59
всё печальней. кстати, чем код элемента справочника не устраивает к качестве номера коровы?
127 111serzh
 
10.08.16
14:00
Я неправильно выразился простите. Является каждой корове присвоен свой  личный номер.
128 Горогуля
 
10.08.16
14:01
(127) предлагаю называть код элемента номером коровы и расходиться
129 111serzh
 
10.08.16
14:03
Нужно что бы от последнего номера коровы (Код) из справочник скот  прибавлялся 1 и помещался в номер бирки
130 Горогуля
 
10.08.16
14:04
предлагаю заменить надпись "код" надписью "номер бирки"
131 111serzh
 
10.08.16
14:12
Как это сделать?
132 Горогуля
 
10.08.16
14:14
133 DDwe
 
10.08.16
14:20
Это всё конечно смешно, в некотором роде. Но непонятно, почему такие люди не в дет.саду на кошках тренируются, а автоматизируют предприятия.
134 Горогуля
 
10.08.16
14:22
(133) думаешь, на кошках проще? кошкам тоже нужен номер бирки
135 111serzh
 
10.08.16
14:32
Ситуацию поясню, я сейчас как стажер в отделе программистов. Мне ставят задачи я пытаюсь выполнять в учебной базе. Ребята все умеют в 1с, просто я не спрашиваю. Решил у вас помощи попросить. Сами же такими были! А сейчас прикалываетесь. Конечно неловко перед вами, что спрашиваю такую ерунду. Но выхода не остается... Просто вспомните себя, какие вы были когда в следующий раз решите кого то унизить.
136 Горогуля
 
10.08.16
14:36
не убедил. чем код не устраивает?
137 DDwe
 
10.08.16
14:36
(135) Ну, у тебя же нет желания понять, как всё это работает. Понять цепочку взаимосвязей. Чтобы потом легко справляться самому, ты же спрашиваешь - как это сделать, для того, чтобы просто тупо скопировать и вперед к победе.
138 111serzh
 
10.08.16
14:38
Да нет, просто нужен пример. или подсказка направляющая. я не прошу процедуру сделать в отладчике. просто подсказать
139 Горогуля
 
10.08.16
14:39
(137) по-моему в этой ветке был прикол. человек тупо скопипастил текст запроса без палок (|) себе в код и делал круглые глаза
140 Горогуля
 
10.08.16
14:39
(138) передаю по буквам: не надо тебе этого
141 111serzh
 
10.08.16
14:40
Я думаю что правильно сделать взять последнее значение из код справочника скот и прибавить 1 к нему что бы избежать повтора.
142 Горогуля
 
10.08.16
14:40
+(140) бери код. платформа - она потом сама, даже если код строковый
143 Pentosh
 
10.08.16
14:41
(138) почитайте книгу
Радченко М.Г. 1С- Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы.
думаю у вас такое есть в отделе, а уж потом что-то делать пробуйте.
144 111serzh
 
10.08.16
14:43
Спасибо.
145 Горогуля
 
10.08.16
14:44
(141) поздравляю, так и есть. даже без твоего участия
146 Горогуля
 
10.08.16
14:46
а как-то была у меня необходимость своей нумерации. искал максимум, добавлял единицу...
147 111serzh
 
10.08.16
15:11
Получилось?
148 Горогуля
 
10.08.16
15:12
(147) канеш получилось. но уже никак не вспомню, чем нас код не устроил
149 Горогуля
 
10.08.16
15:13
(148) что-то связанное со своим форматом новых номеров дисконтных карт. не всегда сплошная нумерация
150 111serzh
 
10.08.16
15:37
Понял. Я не могу пока такими вещами хвастаться, тут с мелочью не могу разобраться....
151 Горогуля
 
10.08.16
15:40
мораль из (148). три половозрелых мужчины перед тем, как искать максимум и делать плюс один, доказывали сами себе, что такой велосипед нужен, и без него никак
152 111serzh
 
10.08.16
15:51
;)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.