Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282

Автоматическое заполнение определенных записей

19.10.2019, 16:06. Показов 1077. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте друзья!!!!

Прошу Вас о помощи так как всемогущий google выводит ..... мягко говоря. Никак не могу понять с чего начать, да еще и всякие статьи по данному вопросу совсем меня запутали.
Итак есть база учета материала за смену. Где нужно подсчитать сколько всего на одну линию ушло материала и осталось в остатке. Например: Дается линию под названием AC которая состоит из 12 коробок где упаковывается определенные детали .
Линия состоит из 12 коробок, в каждую коробку входит 60 деталей, 60 пластмассовых поддонов, 60 решеток и.т.д.
Так вот мною создана Справочник под названием "Номенклатура", и Документ под названием ACЛайн где находятся следующие реквизиты:
1) Количество палетов
2) Остаток
Также в данном документе находиться табличная часть под названием "Материалы" в нем созданы следующие поля:
1) Наименование материала
2) Количество
3) Итого
Задача состоит в следующем при заполнении реквизита - "Количество палетов", автоматичекски заполнять табличная часть например:
Количество Палетов = 11
автоматически должная заполняться табличная часть - "Материалы". Только определенных записей
1) AC-пластмаски
2) AC-Решетки
3) Клеенка
4) AC-пакет
И.т.Д.

Также выкладываю Вам код
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
&НаСервере
Функция ВыбратьМатериал(Элемент)
    
КонецФункции
&НаКлиенте
Процедура КоличествоПалетовПриИзменении(Элемент)
    // Вставить содержимое обработчика. 
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ACЛайн.Номер КАК Номер,
        |   ACЛайн.Дата КАК Дата,
        |   ACЛайн.КоличествоПалетов КАК КоличествоПалетов,
        |   ACЛайн.Остаток КАК Остаток,
        |   ACЛайн.Материалы.(
        |       Ссылка КАК Ссылка,
        |       НаименованиеМатериалов КАК НаименованиеМатериалов,
        |       СУММА(Количество) КАК Количество,
        |       СУММА(Итого) КАК Итого
        |   ) КАК Материалы,
        |   ACЛайн.Ссылка КАК Ссылка
        |ИЗ
        |   Документ.ACЛайн КАК ACЛайн
        |ГДЕ
        |   ACЛайн.Материалы.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ACЛайн.Материалы.(НаименованиеМатериалов,
        |   Ссылка)";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи\
        ВыборкаДетальныеЗаписи.НаименованиеМатериалов="AC-Пластмастки";
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
 
КонецПроцедуры
А также выгрузку БД

учет материалов.rar

Заранее благодарю Вас за помощь друзья!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2019, 16:06
Ответы с готовыми решениями:

Автоматическое заполнение
Добрый день! Есть задача: при выборе номеклатуры должна автоматически проставляться цена закуп. По примеру в Радченко создала фукцию в...

Автоматическое заполнение
Как сделать, чтоб форма автоматически высчитывала необходимые мне данные? &НаКлиенте Процедура ДоговорПриИзменении(Элемент) ...

Автоматическое заполнение поля
У меня есть документы: ПоступлениеТоваров и ОплатаКонтрагенту Регистр накоплений: ДолгКонтрагентам Необходимо, чтобы при выборе...

14
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
19.10.2019, 16:38
Начни с того что на клиенте нельзя выполнять запросы.
0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
19.10.2019, 17:25  [ТС]
понятно
Я так понял что нужно создавать отдельную процедуру да?
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
19.10.2019, 17:32
Цитата Сообщение от mikkijon Посмотреть сообщение
Я так понял что нужно создавать отдельную процедуру да?
да.

Добавлено через 1 минуту
mikkijon, а что значит префикс АС ?
0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
19.10.2019, 17:35  [ТС]
И как создать запрос я что то совсем запутался

Добавлено через 33 секунды
Dethmontt, Нет это Сокращенное название детали
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
19.10.2019, 17:38
Цитата Сообщение от mikkijon Посмотреть сообщение
И как создать запрос я что то совсем запутался
Точно так же, но в другой процедуре которая будет выполнятся на сервере
0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
21.10.2019, 17:18  [ТС]
Это вот так ?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ACЛайн.Номер КАК Номер,
        |   ACЛайн.Дата КАК Дата,
        |   ACЛайн.КоличествоПалетов КАК КоличествоПалетов,
        |   ACЛайн.Остаток КАК Остаток,
        |   ACЛайн.Материалы.(
        |       Ссылка КАК Ссылка,
        |       НаименованиеМатериалов КАК НаименованиеМатериалов,
        |       СУММА(Количество) КАК Количество,
        |       СУММА(Итого) КАК Итого,
        |       Ссылка КАК Ссылка1
        |   ) КАК Материалы,
        |   ACЛайн.Ссылка КАК Ссылка
        |ИЗ
        |   Документ.ACЛайн КАК ACЛайн
        |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        |       ПО ACЛайн.Материалы.Ссылка = Номенклатура.Ссылка
        |ГДЕ
        |   ACЛайн.Материалы.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ACЛайн.Материалы.(НаименованиеМатериалов,
        |   Ссылка,
        |   Ссылка)";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи\
        ВыборкаДетальныеЗаписи.НаименованиеМатериалов="AC-Пластмастки";
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Если да то тут она выдает ошибку что переменная Ссылка не поределена!!!
0
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
21.10.2019, 17:41
mikkijon, вы ссылку параметром передаете в серверную функцию ?
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
21.10.2019, 20:39
Цитата Сообщение от mikkijon Посмотреть сообщение
Если да то тут она выдает ошибку что переменная Ссылка не поределена!!!
Ссылку нужно передать параметром в функцию. (в документации описаны область видимости переменных)
Цитата Сообщение от mikkijon Посмотреть сообщение
ВыборкаДетальныеЗаписи.НаименованиеМатер иалов="AC-Пластмастки";
1. В выборку НЕЛЬЗЯ записывать, тут тоже будет ошибка (это описано в документации к типу "выборкаИзЗапроса")
Цитата Сообщение от mikkijon Посмотреть сообщение
ACЛайн.Материалы.
Цитата Сообщение от mikkijon Посмотреть сообщение
) КАК Материалы,
2. В выборке не будет поля "НаименованиеМатериалов" так как оно лежит во вложенной таблице - как вы написали в запросе (имя Материалы) - (в документации к запросам описан синтаксис запроса и его дальнейший обход)
1
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
24.10.2019, 17:31  [ТС]
Доброго времени суток Друзья!!!!
Послу долгого отсутствия я наконец сел за за свою любимую 1С . Полазив очень много времени в интернете я наконец то нашел 1 запрос где все подробно описано. И написав на его примере свой запрос. вроде выводить без ошибок. Все бы хорошо но вот только выводит она пустые строки. Скажите пожалуйста что я опять не так понял.
Ниже выкладываю свой код и выгрузку БД
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
&НаСервере
Процедура ЗаполнитьТабЧасть()
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Номенклатура.Наименование КАК Наименование
        |ИЗ
        |   Справочник.Номенклатура КАК Номенклатура";
    
    //Запрос.УстановитьПараметр("Наименование",Объект.КоличествоПалетов);
    
    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    
    //ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока РезультатЗапроса.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        //Стр = Объект.Материалы.Добавить();
        //Стр.НаименованиеМатериалов = ВыборкаДетальныеЗаписи.Ссылка;
        НоваяСтрока = Объект.Материалы.Добавить();
        НоваяСтрока = РезультатЗапроса.Наименование;
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
 
КонецПроцедуры
&НаКлиенте
Процедура КоличествоПалетовПриИзменении(Элемент)
    ЗаполнитьТабЧасть();
КонецПроцедуры
учет материалов.rar
Если можно по подробнее расскажите или приведите пример с пояснениями.
Заранее благодарю Вас за помощь!!!!
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
24.10.2019, 20:51
В переменную НоваяСтрока записывается "добавленная" строка в таблицу Материалы.
Цитата Сообщение от mikkijon Посмотреть сообщение
НоваяСтрока = Объект.Материалы.Добавить();
В переменную НоваяСтрока записывается результат выборки из запроса из поля Наименование
Цитата Сообщение от mikkijon Посмотреть сообщение
НоваяСтрока = РезультатЗапроса.Наименование;

.................

Наверное у переменной НоваяСтрока после кода:
1C
1
НоваяСтрока = Объект.Материалы.Добавить();
Есть какие-то колонки в которые нужно записывать???
Типа такого:
1C
1
НоваяСтрока.Наименование = РезультатЗапроса.Наименование;
mikkijon, как думаешь?

Добавлено через 2 минуты
mikkijon, Вообще-то открою тебе секрет, только тсссссссс, никому, ок?
СЕКРЕТ
Это все описано в Синтаксис помощнике даже с примерами )))
0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
26.10.2019, 15:50  [ТС]
Dethmontt, Простите за такие глупые вопросы. Я просто новичок и долго не занимался данной платформой.
Теперь вопрос в другом . Я создал при процедуру Табличной части МатериалыПриОткрытии. Все работает идеально. Загвоздка в том что если пользователь добавить в справочник Новую запись, и захочет добавить в ТабЧасть документа, то все записи таблице обновятся и соотвественно и удалиться количество. Ниже выкладываю Код
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
&НаСервере
Процедура ЗаполнитьТабЧасть()
    
 Запрос = Новый Запрос;
 Запрос.Текст ="ВЫБРАТЬ
               |    Kappa.Наименование КАК Наименование
               |ИЗ
               |    Справочник.Kappa КАК Kappa";
 РезультатЗапроса = Запрос.Выполнить().Выбрать();
 Пока  РезультатЗапроса.Следующий() Цикл 
   НоваяСтрока = Объект.Материалы.Добавить();
   НоваяСтрока.НаименованиеМатериала = РезультатЗапроса.Наименование;
 КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // Вставить содержимое обработчика.
  Объект.Материалы.Очистить();
    ЗаполнитьТабЧасть();
КонецПроцедуры
А если Объект.Материалы.Очистить(); убрать то соотвественно в Табличную часть документа добавяться те же записи, то есть одни те же записи повторяются. Подскажите что можно сделать .
Заранее благодарен.

Добавлено через 31 минуту
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
28.10.2019, 23:51
mikkijon, тут важнее ответить на вопрос, а зачем в табличную часть что то добавлять ПриОткрытии ?

Не по теме:

(З.Ы. сразу даю подсказку, может для заполнения тупо кнопку сделать "Заполнить"?)

0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
29.10.2019, 01:40  [ТС]
Dethmontt, Чтобы пользователь не тратил время на заполнение номенклатуры. А вводил только количество
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
29.10.2019, 02:17
mikkijon, ну так и сделай ему кнопку, заполнить номенклатуру автоматически без ползания по формам...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2019, 02:17
Помогаю со студенческими работами здесь

Автоматическое заполнение полей
Добрый день! Имеется Справочник "Типовые элементы", который содержит 2 табличные части: "Виды Работ" и "Операционный...

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

Автоматическое заполнение реквизита
1. Справочник «Парк машин» - Инвентарный номер -Наименование - Марка (перечисление со значениями возможных марок) -...

Автоматическое заполнение данных документа
Здравствуйте, подскажите почему не работает процедура автоматической подстановки единиц измерения номенклатуры в документе? версия 1С 8.2. ...

Автоматическое заполнение табличной части, 1С 8.3
Здравствуйте! Я начинающий юзер 1С. Подскажите пожалуйста У меня есть Справочник Номенклатура с реквизитом цена и есть Документ, где в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru