|
выборка животных по возрастной группе | ☑ | ||
---|---|---|---|---|
0
111serzh
22.07.16
✎
16:40
|
Задача создать кнопку в документе ведомость взвешивания животных, при помощи которой производилась выборка животных подходящих выбранной возрастной группе в разделе учетная группа. Вывод в табличную часть животных подходящих к выбранной учетной группе.
Учетные группы делятся на определенный период времени (по возрасту): бычки 0-2, бычки 2-6, бычки 6-12, телки 0-2,телки 2-6, телки 6-12. В справочнике Интеко КРС группового учета создал реквизиты: пол животного, возраст с, возраст по. В справочнике КА_скот создал реквизиты: пол животного, дата рождения. Опыта работы в 1с практически нет. Заранее спасибо. |
|||
1
Cyberhawk
22.07.16
✎
16:43
|
"возраст с, возраст по" // Судя по диапазонам 0-2, 2-6 и т.д. надо не "по", а "до" (т.е. не включая вторую границу)
|
|||
2
Garykom
гуру
22.07.16
✎
16:45
|
Не проще сюда http://www.chernozemie-inteko.ru/products-of-inteco/USHP/ позвонить/написать?
|
|||
3
Jokero
22.07.16
✎
16:47
|
Вот эти диапазоны групп по возрасту будешь в отчете настраивать. В справочнике тебе нужна только одна цифра - возраст.
|
|||
4
Jokero
22.07.16
✎
16:49
|
(3) + ну естессно, не возраст, а дата рождения)
|
|||
5
Garykom
гуру
22.07.16
✎
16:50
|
(3) Моя как бы не в курсе предметки с/х и животноводства, но вес и возраст это величины не постоянные ))
Ладно еще возраст можно через дату рождения, но вес это же периодика. |
|||
6
Garykom
гуру
22.07.16
✎
16:51
|
(4) Там особенность что похожих причесывают под одну гребенку и пишут бычки 0-2 - стока то штук.
Отдельно каждого взвешивать/учитывать нафик нуна. По сути групповой учет идет. |
|||
7
jsmith
22.07.16
✎
16:54
|
Как вариант
// Документ имеет реквизит РазделУчета Процедура ЗаполнитьСкот() Запрос = Новый Запрос(); Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Запрос.УстановитьПараметр("ВозрастС", Объект.РазделУчета.ВозрастС); Запрос.УстановитьПараметр("ВозрастПо", Объект.РазделУчета.ВозрастПо); ВЫБРАТЬ КА_Скот.Ссылка КАК Скот ИЗ Справочник КА_Скот КАК КА_Скот ГДЕ РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, Дата, ГОД) >= &ВозрастС И РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, Дата, ГОД) <= &ВозрастПо"; ТЗ = Запрос.Выполнить().Выгрузить(); Объект.ТабличнаяЧасть.Загрузить(ТЗ); Для Каждого Стр Из Объект.ТабличнаяЧасть Цикл // код заполнения строки табличной части КонецЦикла; КонецПроцедуры |
|||
8
111serzh
22.07.16
✎
16:54
|
Если честно не понимаю практически не чего! Но хочу разобраться. Справочники Интеко КРС группового учета, КА_Скот несут в себе информацию по определенной корове или бычку. Нужно при выборе учетной группе в документе ведомость взвешивания животных создать отбор.
|
|||
9
jsmith
22.07.16
✎
16:55
|
Запрос.Текст =
|
|||
10
111serzh
22.07.16
✎
17:01
|
Создал кнопку (заполнить по учетной группе). Которая должна работать при выборе определенной учетной группе. При нажатие должна выдавать тех бычков которые подходят по возрасту. Из за этого и создал реквизит дата роздения
|
|||
11
111serzh
22.07.16
✎
17:11
|
Добавил реквизит РазделУчета. Выдает ошибку
{Документ.КА_ВедомостьВзвешиванияЖивотных.Форма.ФормаДокумента.Форма(72,1)}: Неопознанный оператор <<?>>КА_Скот.Ссылка КАК Скот (Проверка: Толстый клиент (обычное приложение)) |
|||
12
hhhh
22.07.16
✎
17:32
|
запятую забыл поставить
|
|||
13
Горогуля
22.07.16
✎
17:33
|
(12) тупо скопипастил, не думая
|
|||
14
111serzh
25.07.16
✎
09:53
|
Ребята подскажите не могу разобраться. Заранее спасибо.
|
|||
15
Молочный брат
25.07.16
✎
10:00
|
Там же в поставке есть демопример. По нему и смотри
|
|||
16
Молочный брат
25.07.16
✎
10:10
|
Зачем вообще что-то писать в конфе. Там все написано без тебя. Нужно просто прочитать доку и работать
|
|||
17
111serzh
25.07.16
✎
10:29
|
Не могу понять. Незнаю как сделать.....
|
|||
18
Горогуля
25.07.16
✎
10:31
|
засылай денег, часов через 20 получишь готовое
|
|||
19
DDwe
25.07.16
✎
10:31
|
(17) Если опыта нет, зачем полез?
|
|||
22
jsmith
25.07.16
✎
10:33
|
Третий или какой день пилишь какую-то шнягу. Шарил бы в кодинге, давно бы сделал. Прочитай Радченко для начала.
|
|||
24
Молочный брат
25.07.16
✎
10:40
|
В Интеко писать противопоказано. Тем более, что этот функционал есть в системе
|
|||
25
111serzh
25.07.16
✎
10:45
|
Я сам пытаюсь. Нахожусь далеко от города. Возможности обратиться за помощью к программисту нет. Подумал в вашем форуме помогут, ну ладно сам разберусь. Извинить что занял ваше время.
|
|||
26
Молочный брат
25.07.16
✎
10:54
|
(25) Уважаемый, причем здесь программист? В твоем случае нужен консультант(внедренец) со знанием конфы и предметной области. Ты бы для начала почитал как учитывают животных в СХ.
|
|||
28
111serzh
25.07.16
✎
12:25
|
Создал вот такой код.
Процедура ЗаполнитьПоУчетнойГруппеЗаполнитьПоУчетнойГруппе(Кнопка) Запрос = Новый Запрос(); Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Запрос.УстановитьПараметр("ВозрастС", СтатусКРС.ВозрастС); Запрос.УстановитьПараметр("ВозрастПо", СтатусКРС.ВозрастПо); Запрос.Текст = "ВЫБРАТЬ |КА_Скот.Ссылка КАК Скот |ИЗ |Справочник КА_Скот КАК КА_Скот |ГДЕ |РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, Дата, МЕСЯЦ) >= &ВозрастС |И РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, Дата, МЕСЯЦ) < &ВозрастПо"; Результат=Запрос.Выполнить(); ТЗ = Результат.Выгрузить(); ТЗ = Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть=ТабличнаяЧасть.Загрузить(ТЗ); Для Каждого Стр Из ТабличнаяЧасть Цикл КонецЦикла; КонецПроцедуры |
|||
29
DDwe
25.07.16
✎
12:31
|
(28) И?
|
|||
30
111serzh
25.07.16
✎
12:33
|
Пишет что синтаксическая ошибка КАК.
это из за того что не в конструкторе собрал? |
|||
31
Горогуля
25.07.16
✎
12:33
|
а что, правда, на каждую скотину свой элемент справочника заводится?
|
|||
32
Горогуля
25.07.16
✎
12:34
|
(30) ну собери конструктором
|
|||
33
111serzh
25.07.16
✎
12:34
|
Да. С ее общими данными.
|
|||
34
Горогуля
25.07.16
✎
12:36
|
ладно коровы, но есть же лягушки с икрой (реально, видел такую базу). так там ушлые продавщички икру ложками тырили и налево гнали. кто её считать будет?
|
|||
35
111serzh
25.07.16
✎
12:49
|
Интересная задачка
|
|||
36
111serzh
25.07.16
✎
13:04
|
Сделал в конструкторе
Процедура ЗаполнитьПоУчетнойГруппеЗаполнитьПоУчетнойГруппе(Кнопка) Запрос = Новый Запрос(); Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДата()); Запрос.УстановитьПараметр("ВозрастС", СтатусКРС.ВозрастС); Запрос.УстановитьПараметр("ВозрастПо", СтатусКРС.ВозрастПо); Запрос.Текст = "ВЫБРАТЬ | КА_Скот.Ссылка |ИЗ | Справочник.КА_Скот КАК КА_Скот |ГДЕ | РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, &ДатаДокумента, МЕСЯЦ) >= &ВозрастС | И РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, &ДатаДокумента, МЕСЯЦ) < &ВозрастПо"; Результат=Запрос.Выполнить(); ТЗ = Результат.Выгрузить(); ТЗ = Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть=ТабличнаяЧасть.Загрузить(ТЗ); Для Каждого Стр Из ТабличнаяЧасть Цикл КонецЦикла; Поругался {Документ.КА_ВедомостьВзвешиванияЖивотных.Форма.ФормаДокумента.Форма(52)}: Значение не является значением объектного типа (Загрузить) ТабличнаяЧасть=ТабличнаяЧасть.Загрузить(ТЗ); |
|||
37
hhhh
25.07.16
✎
13:17
|
значит у вас фигня какая-то находится в ТАбличнаяЧасть. отладчиком посмотрите.
и зачем вы в ТабличнаяЧасть записываете ТабличнаяЧасть.Загрузить(ТЗ) ?? |
|||
38
Молочный брат
25.07.16
✎
13:23
|
Специально для дятлов поясняю, что в половозрастной группе, например, от 0 до 6 мес. могут быть животные, которым больше 6 мес..
Тук тук |
|||
39
111serzh
25.07.16
✎
13:40
|
Нет такой группы есть от 0-2 и 2-6
|
|||
40
111serzh
25.07.16
✎
13:45
|
Результат=Запрос.Выполнить();
ТЗ = Результат.Выгрузить(); ТЗ = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из ТЗ Цикл ТаблицаВзвешивание = Взвешивание.Выгрузить(); КонецЦикла; КонецПроцедуры правильно сделал что бы выгружались подходящие позиции? |
|||
41
jsmith
25.07.16
✎
13:49
|
Ты тупишь. Ты хотя бы представления о программировании имеешь?
Для УФ ИмяТабЧасти = "Скот"; Объект[ИмяТабЧасти].Загрузить(Запрос.Выполнить().Выгрузить()); Для ОФ ИмяТабЧасти = "Скот"; ЭтотОбъект[ИмяТабЧасти].Загрузить(Запрос.Выполнить().Выгрузить()); |
|||
42
Fish
25.07.16
✎
13:49
|
(40) Зачем 2 раза запрос выполнять и выгружать?
|
|||
43
jsmith
25.07.16
✎
13:52
|
(42) >>чтобы выгружались подходящие позиции
|
|||
44
Fish
25.07.16
✎
13:54
|
(43) Блин, а там ещё и в цикле есть Взвешивание.Выгрузить(); :)))
|
|||
45
111serzh
25.07.16
✎
14:31
|
Ребята подскажите вот у меня есть таблица взвешивание в ней поля: скот,масса,массаПред,привес.
как сделать что бы добавлялось новая строка по моему запросу? Для Каждого Стр Из ТЗ Цикл Стр = ТЗ.Добавить(); ?????? КонецЦикла; |
|||
46
DDwe
25.07.16
✎
14:45
|
(45) Толсто, очень.
|
|||
47
111serzh
25.07.16
✎
15:20
|
Результат=Запрос.Выполнить();
ТЗ = Результат.Выгрузить(); ТЗ = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из ТЗ Цикл НоваяСтр = Взвешивание.Добавить(); НоваяСтр.Скот=Справочник.КА_Скот.Ссылка(); НЕ ЧЕГО НЕ ДАЕТ ПУСТЫЕ СТРОКИ ТОЛЬКО |
|||
48
Молочный брат
25.07.16
✎
15:20
|
(39) Я к примеру, умник. Для КРС такие группы могут быть А у вас свиньи скорее всего.
|
|||
49
jsmith
25.07.16
✎
15:25
|
(47) О ёмана, о ёмана
Результат = Запрос.Выполнить(); ТЗ = Результат.Выгрузить(); Для Каждого Стр Из ТЗ Цикл НоваяСтр = Взвешивание.Добавить(); НоваяСтр.Скот = Стр.Скот; //... КонецЦикла; |
|||
50
111serzh
25.07.16
✎
15:48
|
Спасибо большое....
|
|||
51
111serzh
25.07.16
✎
16:52
|
Вот сделал, все работает.
Процедура ЗаполнитьПоУчетнойГруппеЗаполнитьПоУчетнойГруппе(Кнопка) Запрос = Новый Запрос(); Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДата()); Запрос.УстановитьПараметр("ВозрастС", СтатусКРС.ВозрастС); Запрос.УстановитьПараметр("ВозрастПо", СтатусКРС.ВозрастПо); Запрос.УстановитьПараметр("ПолЖивотного", СтатусКРС.ПолЖивотного); Запрос.Текст = "ВЫБРАТЬ | КА_Скот.Ссылка |ИЗ | Справочник.КА_Скот КАК КА_Скот |ГДЕ | РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, &ДатаДокумента, МЕСЯЦ) >= &ВозрастС | И РАЗНОСТЬДАТ(КА_Скот.ДатаРождения, &ДатаДокумента, МЕСЯЦ) < &ВозрастПо | И КА_Скот.ПолЖивотного = &ПолЖивотного"; Результат=Запрос.Выполнить(); ТЗ = Результат.Выгрузить(); ТЗ = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из ТЗ Цикл НоваяСтр = Взвешивание.Добавить(); НоваяСтр.Скот=Стр.Ссылка; КонецЦикла; ПерезаполнитьПредыдущийВесИПривесы(); КонецПроцедуры Подскажите как сделать что бы происходила очистка предыдущего результата при выборе другой учетной группе. |
|||
52
jsmith
25.07.16
✎
17:13
|
...
Взвешивание.Очистить(); Для Каждого Стр Из ТЗ Цикл ... |
|||
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
|
;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |