Имя: Пароль:
1C
1С v8
Создание документа Приплод.
0 111serzh
 
03.08.16
11:07
Добрый день, задача создать документ Приплод.
Создал форму документа, добавил реквизиты: организация, подразделение организации, ферма, бригадир, зоотехник.
И реквизиты табличной части: физлицо, номер матки, пол(этого типа что и а справочнике скот), индивидуальный номер, дата рождения, скот(справочник Скот).
Справочник Скот несет в себе всю информацию по коровам. Из него заполняется таб.часть.
задача прописать процедуру создания кнопки (добавить элемент справочника) при нажатие на которую будет происходить заполнение табличной части.
Попробовал, получилась ерунда!
Если можно пример  подскажите, буду разбираться.

Процедура ДобавитьЭлементыСправочника(Кнопка)
    ТабличнаяЧасть = Приплод;
    ФормаВыбораПриплод = ПолучитьФорму ("ФормаДокумента");
        Запрос = Новый Запрос;
            
     Запрос.Текст =    "ВЫБРАТЬ
                       |    КА_ПриплодПриплод.Ссылка,
                       |    КА_ПриплодПриплод.НомерСтроки,
                       |    КА_ПриплодПриплод.Физлицо,
                       |    КА_ПриплодПриплод.НомерМатки,
                       |    КА_ПриплодПриплод.Пол,
                       |    КА_ПриплодПриплод.ДатаРождения,
                       |    КА_ПриплодПриплод.Скот,
                       |    КА_Скот.Ссылка КАК Ссылка1
                       |ИЗ
                       |    Документ.КА_Приплод.Приплод КАК КА_ПриплодПриплод
                       |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КА_Скот КАК КА_Скот
                       |        ПО КА_ПриплодПриплод.Скот = КА_Скот.Ссылка
                       |ГДЕ
                       |    КА_Скот.Ссылка = &Ссылка";
             Запрос.УстановитьПараметр("Ссылка", Ссылка);
        
        Результат = Запрос.Выполнить().Выгрузить();
  
    Для Каждого ЭлементРезультата из Результат Цикл
        НоваяСтрокаПриплод = Приплод.Добавить();
        
        ЗаполнитьЗначенияСвойств(НоваяСтрокаПриплод,ЭлементРезультата);
         Приплод.ЗаполнитьПриплодВСтрокеСкот(НоваяСтрокаПриплод, Приплод, Истина);
        Приплод.Загрузить = Истина;
    КонецЦикла;
                
                    
КонецПроцедуры


1с 8.3 управление сельскохозяйственным предприятием 1.3.

Заранее спасибо.
1 b_ru
 
03.08.16
11:12
Сконцентрируйся и переведи, пожалуйста, на понятный язык
>>прописать процедуру создания кнопки (добавить элемент справочника) при нажатие на которую будет происходить заполнение табличной части

Что ты конкретно хочешь? Чтобы в табличной части в реквизите "Скот" выбирали из справочника, и после этого заполнялись другие поля этой строки, или чтобы данные вбивались в строку, а при проведении документа создавался новый элемент справочника "Скот"
2 SergTheGreat
 
03.08.16
11:12
Уточни задачу пож-та. Пользователь нажимает кнопку, создается новый элемент Скот, после записи элемента заполняется таб. часть документа Приплод. Так?
3 111serzh
 
03.08.16
11:14
Пользователь нажимает кнопку, создается новый элемент Скот, после записи элемента заполняется таб. часть документа Приплод
Вот так
4 111serzh
 
03.08.16
11:14
Я не понимаю пока что. Только начал учиться.
5 SergTheGreat
 
03.08.16
11:17
(3) А что именно из нового элемента попадает в таб. часть? Создается 1 новая строка или несколько?
6 Сниф
 
03.08.16
11:18
Справочник.КА_Скот КАК КА_Скот
НомерМатки, ДатаРождения, Физлицо

Веселая у вас конфигурация )
7 111serzh
 
03.08.16
11:20
Создание несколько строк, в которых присваивается  личный номер номер, номер матки, дата рождения, пол каждой строки.
8 111serzh
 
03.08.16
11:21
данные при необходимости из меняются в ручную.
9 Dotoshin
 
03.08.16
11:25
(7) Сформулируй сначала задачу простыми русским словами (не в терминах языка программирования). Если удастся это сделать, то будет гораздо проще перейти к программной реализации.
10 SergTheGreat
 
03.08.16
11:29
(9) Согласен полностью!!! Распиши в каком случае создается документ Приплод и какая инфа должна присутствовать конкретно в нем, а какая в справочнике Скот.

Учти что спецов по с/х тут мало и то, что тебе кажется абсолютно ясным, для др. может быть неочевидным.
11 Dotoshin
 
03.08.16
11:37
(10) Судя по всему, ему как раз ничего не ясно.
Поэтому для начала ТС-у нужно "погрузиться в специфику"  и понять, что вообще от него хотят.
12 111serzh
 
03.08.16
11:43
В документе Приплод вносятся новорожденные телята. Им присваивается номер, номер матки(корова которая родила ее номер), пол, дата роождения. и все это сохраняется в справочнике скот.
из документа приплод после заполнения формируется ведомость за определенный период времяни, к примеру 15 дней.
13 Dotoshin
 
03.08.16
11:44
Могу предположить, что ему нужно зафиксировать факт появления на свет потомства (приплод), от какого-то домашнего скота. Скорей всего при этом, каждую новорожденную особь нужно занести в справочник, как отдельный элемент. При этом надо задуматься, откуда брать информацию для заполнения элементов справочника. Далее все эти нововведенные элементы нужно затолкать в ТЧ документа приплод.
Вот как-то так...
14 Dotoshin
 
03.08.16
11:45
(12) А теперь открой секрет - откуда программа узнает сколько и какого пола телят родилось?
15 111serzh
 
03.08.16
11:47
В приплод создаются строки с номером теленка. а все остальные параметры вносятся в ручную и сохраняются.
16 111serzh
 
03.08.16
11:48
создание новых строк должно осуществляться при нажатие кнопки Добавить элемент справочника
17 SergTheGreat
 
03.08.16
11:56
(12) Если "все это сохраняется в справочнике скот", то зачем эту информацию держать документе? В таб. части достаточно ссылки на справочник Скот. Остальную информацию из справочника можно выводить в форму (для удобства пользователей), но вот в базе ее дублировать не стоит.

Кстати, форма обычная или управляемая?
18 111serzh
 
03.08.16
11:59
Обычная. Задача такая поставлина не представляю как сделать
19 bodri
 
03.08.16
11:59
(17) то зачем эту информацию держать документе?
Скорей всего этот документ должен делать какие либо движения по регистрам, по аналогии оприходования товара.
20 111serzh
 
03.08.16
12:00
Ну да, вы правы.
21 bodri
 
03.08.16
12:03
(0) ?
В шапке указываем скот
В таблице весь приплод.
Если да тогда можно в таблице графы сделать строковые, а при записи записывать элементы справочника и привязывать к строкам табличной части.
П.С. Это на вскидку, по хорошему бы вам сесть и составить список того, чего вам не ясно в задании и с этим списком идти к постановщику задания и разбираться до полного прояснения
22 111serzh
 
03.08.16
12:06
Спасибо. А вы не могли бы привести пример по моей задачи?
23 vicof
 
03.08.16
12:15
И еще русский язык на школьном уровне подучить желательно
24 Мимохожий Однако
 
03.08.16
12:17
(22)Пальцы за тебя тоже загибать?
25 Dotoshin
 
03.08.16
12:26
26 111serzh
 
04.08.16
16:42
Подскажите как сделать что бы в колонке НомерБирки создавался автоматически в таб. части Приплод и проверялась на то что бы не повторялась с НомеромБирки в справочнике КА_Скот.
заранее спасибо...
27 anatoly
 
04.08.16
16:52
пятница завтра...
28 111serzh
 
04.08.16
16:54
?
29 newbling
 
04.08.16
17:03
(6) НомерМатки, ДатаРождения, Физлицо
Надо "Физлицо" заменить на "Физрыло" по специфике работы
30 aleks_default
 
04.08.16
17:04
(29)Рыло это у свиней, у КРС - морда наверное
31 newbling
 
04.08.16
17:07
(30) "Физморда" вполне себе
32 111serzh
 
04.08.16
17:09
Я вас услышал, господа. Спасибо за помощь...
33 newbling
 
04.08.16
17:14
По (0) не совсем понятно что делать надо. Вроде как и приплод надо учитывать, но вроде и ещё что-то там создавать с бирками. Бирки - это что за сущность вообще? Подчинённый справочник на подобии единицы измерения или запись регистра сведений на подобии штрих-кодов?

"задача прописать процедуру создания кнопки (добавить элемент справочника) при нажатие на которую будет происходить заполнение табличной части"

Элемент справочника =/= заполнение таб части. Вам нужно создавать новые сущности? Бирки, там. Создавать и ими заполнять?

Надо уточнить и более внятно сформировать задачу.
34 newbling
 
04.08.16
17:14
(32) ок, ждём
35 111serzh
 
04.08.16
17:21
Я сделал все создается, теперь нужно определиться с биркой, это штрих код который присваивается корове при рождении он не повторяется мне нужно что бы происходила проверка.
36 Мимохожий Однако
 
04.08.16
17:22
Используй код справочника Бирки. Из него штрихкод и делай.
37 aleks_default
 
04.08.16
17:45
(32) Если вопрос задается "Как сделать что-то" то большая вероятность получить в ответ насмешку.
А если "Я сделал то-то и то-то, подскажите как правильно", то обычно в первом же посте отвечают по существу.
38 111serzh
 
05.08.16
13:06
Процедура ДобавитьЭлементыСправочника(Кнопка)
    ТабличнаяЧасть = Приплод;
            Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДата());
          Наименование = "Справочник.КА_Скот.Наименование";
        Запрос.УстановитьПараметр("НомерБирки", Наименование);
                  Запрос.УстановитьПараметр("Ссылка", Ссылка);
     Запрос.Текст =    "ВЫБРАТЬ
                       |    КА_ПриплодПриплод.Ссылка,
                       |    КА_ПриплодПриплод.НомерСтроки,
                       |    КА_ПриплодПриплод.Физлицо,
                       |    КА_ПриплодПриплод.НомерМатки,
                       |    КА_ПриплодПриплод.Пол,
                       |    КА_ПриплодПриплод.ДатаРождения,
                       |    КА_ПриплодПриплод.Скот,
                       |    КА_Скот.Наименование
                       |ИЗ
                       |    Документ.КА_Приплод.Приплод КАК КА_ПриплодПриплод
                       |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КА_Скот КАК КА_Скот
                       |        ПО КА_ПриплодПриплод.Скот = КА_Скот.Ссылка
                       |ГДЕ
                       |    КА_ПриплодПриплод.ДатаРождения = &ДатаДокумента
                       |    И КА_ПриплодПриплод.НомерБирки = КА_Скот.Наименование";
        Строка= Приплод.Добавить();            
                  
    ТабПриплод = Запрос.Выполнить().Выгрузить();             
    Если ТабПриплод <> Неопределено Тогда
            Для Каждого Строка Из Приплод Цикл
                       ЗаполнитьЗначенияСвойств(Приплод,Строка);  
                      Строка.ДатаРождения = ТекущаяДата();
                Строка = Приплод.Выгрузить();
      КонецЦикла;
  КонецЕсли;    
  РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   Для каждого НомерБирки из РезультатЗапроса Цикл
       НоваяСтрока = НомерБирки.Приплод.Добавить();
        НоваяСтрока.НомерБирки = Строка.Наименование;
    КонецЦикла;
     Для каждого НомерБирки Из Приплод Цикл
        Если  НомерБирки = Наименование Тогда
        Возврат;    
    КонецЕсли;
    КонецЦикла;
КонецПроцедуры


Хочу что бы номер бирки сравнивался с значением наименование из справочника ка_скот, но он не работает!
Подскажите что не так.
39 aleks_default
 
05.08.16
14:00
Наименование = "Справочник.КА_Скот.Наименование";
        Запрос.УстановитьПараметр("НомерБирки", Наименование);

И что ты думаешь получить в результате запроса?
40 FIXXXL
 
05.08.16
14:09
(38) запомни: если пишешь
Запрос.УстановитьПараметр("НомерБирки", Наименование);
в запросе обязательно должен быть текст &НомерБирки
41 111serzh
 
05.08.16
14:26
|ГДЕ
                       |    КА_ПриплодПриплод.ДатаРождения = &ДатаДокумента
                       |    И КА_Скот.Наименование = &НомерБирки";
        Строка= Приплод.Добавить();            
                  


Не выполняет все равно
42 Pentosh
 
05.08.16
14:36
(41) покури еще (39)
43 Pentosh
 
05.08.16
14:43
(41) в (38) написана полная муть, которую без стакана понять сложно.

напишите, что конкретно пытаетесь сделать в (38), обычным языком.
44 ovrfox
 
05.08.16
14:49
Путаются понятия Приплод и СтрокаПриплода
Скорее всего - проблема в этом
У Таблицы значений нет свойств-колонок, они есть толкьо у строки талицы значений.
45 Mikhail Volkov
 
05.08.16
14:58
(0) > 1с 8.3 управление сельскохозяйственным предприятием 1.3
Что правда СХ без НДС работает? Смотрел недавно Управление птицефабрикой - вроде ООО, а работают без НДС!? Говорят: мы СХ.
46 111serzh
 
05.08.16
14:59
Нет. Только с НДС
47 newbling
 
16.08.16
09:37
(38) Наименование = "Справочник.КА_Скот.Наименование";

В результате у тебя получается строка "Справочник.КА_Скот.Наименование";

Если ты хочешь получить значение из реквизита Наименование, то пиши без кавычек

Наименование = Справочник.КА_Скот.Наименование;

Ну и покури сравнение строк с помощью ПОДОБНО и %%. Мб пригодится в этом случае, ведь строки они такие, может и пробел закрасться.
https://helpf.pro/faq/view/852.html
48 newbling
 
16.08.16
09:41
Ну и вообще, номер бирки это строка или число по типу?
Ещё может быть дело в дате. Ты сравниваешь даты, а может одна будет без часов.

Вообще, прогони свой запрос через консоль запросов - там всё замечательно видно.
49 111serzh
 
17.08.16
11:42
Добрый день.

Процедура ДобавитьЭлементыСправочника(Кнопка)
            ТабличнаяЧасть = Приплод;
            Запрос = Новый Запрос;
            Запрос.УстановитьПараметр("НомерБирки", Ссылка);
                    Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДата());
                    Запрос.УстановитьПараметр("Код", Ссылка);
                    Запрос.УстановитьПараметр("Код", Ссылка);
                  Запрос.УстановитьПараметр("Ссылка", Ссылка);
                  Запрос.Текст =    "ВЫБРАТЬ
                                    |    КА_ПриплодПриплод.НомерБирки,
                                    |    КА_Скот.Код
                                    |ИЗ
                                    |    Документ.КА_Приплод.Приплод КАК КА_ПриплодПриплод
                                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КА_Скот КАК КА_Скот
                                    |        ПО КА_ПриплодПриплод.НомерМатки = КА_Скот.Ссылка
                                    |            И КА_ПриплодПриплод.Скот = КА_Скот.Ссылка
                                    |            И КА_ПриплодПриплод.НомерБирки = КА_Скот.Ссылка
                                    |ГДЕ
                                    |    КА_ПриплодПриплод.НомерБирки = &Код";
                                
                Строка = Приплод.Выполнить();
                Строка.ДатаРождения = "ТекущаяДата()";
              Для Каждого Строка Из Приплод Цикл
                     Если Приплод <> Неопределено  Тогда
                       ЗаполнитьЗначенияСвойств(Приплод,Строка);  
                      Строка.ДатаРождения = ТекущаяДата();        
                     КонецЕсли;
            КонецЦикла;          
                 Код = Ссылка;  
                 НомерБирки = Ссылка;
        Для Каждого НомерБирки Из Приплод Цикл        
             Если НомерБирки = Код Тогда        
               НомерБирки = НомерБирки.Очистить();            
                    Если НомерБирки > Код Тогда
                  НомерБирки.Выполнить().Выгрузить();                               
             КонецЕсли;
                 КонецЕсли;    
        КонецЦикла;     
КонецПроцедуры             
Делает все с точностью на оборот. Сравнивает Код из Справочника КА_Скот если равен то пропускает, если нет, то Выдает ошибку.
50 Fish
 
17.08.16
11:48
(49) Срочно учиться.
51 Pentosh
 
17.08.16
12:01
(49) вы пытались хоть книги читать какие нибудь?
Попросите уже помощи у коллег или увольняйтесь, если учиться не хотите.
52 Pentosh
 
17.08.16
12:06
(49)
1) слишком много параметров, которые не используются даже;
2) первый цикл, что по вашему мнению он должен делать?
3) что у вас есть "ссылка" и почему она постоянно фигурирует в коде, как "НомерБирки" и Ссылка связаны, по вашему мнению.
4) Строка.ДатаРождения = "ТекущаяДата()" - вообще шедеврально.