Для Каждого СтрокаТЧ Из ВашаТЧ Цикл Если СтрокаТЧ.ВашРЕквизит Тогда // ВашРеквизит = Истина МассивУдаляемых.Добавить(МассивУдаляемых); КонецЕсли; КонецЦикла;
Для Каждого Элемент Из МассивУдаляемых Цикл ВашаТЧ .Удалить(Элемент); КонецЦикла;
burza @ Сегодня, 11:40
, Лезте в обработчик события "ПриНачалеВыбора" в нём получите запросом тех партнеров по которым есть продажи (я бы проверял по регистру продажи) и дальше накладывайте отбор на форму выбора вашего справочника
andrew76 @ Сегодня, 17:42
, Блин чего-то вы меня запутали. Если стоит Способ редактирования - "В диалоге", тогда так как я писал про форму элемента и процедуру ПередОткрытием Если стоит Способ редактирования - "В списке", тогда через модуль менеджера
andrew76 @ Сегодня, 17:14
, стопе, нет, так не прокатит. Я не видел что это редактирование в диалоге.
Тогда берите Модуль менеджера регистра, в событии "Перед записью" сделайте проверку на доступность роли и пишите Отказ = Истина. Просто не даст записывать в регистр пользователю с такими провами
andrew76 @ Сегодня, 16:48
, Как вариант ещё можно в форме записи проверять роль пользователя в событии "ПередОткрытием" выставлять Отказ = Истина в случае если например РольДоступна("Кассир")
keria @ Сегодня, 15:48
, Если база файловая, то как правило в константах можно указать от чьего имени запускаются регл. задания. Если база серверная, то они запускаются в виде фоновых заданий от пользователя Винды под которым крутится служба сервера 1С. Если не ошибаюсь это по умолчанию пользователь USRV81C
Gigi @ Сегодня, 12:37
, Все это числа, а разница вот:
Цитата
Разница в том, что индекс строки для конкретной строки может меняться, а идентификатор нет.
Q: Для чего это нужно? A: например для того чтобы чтобы при выполнении сдвига строк списка табличной части с помощью команд "Переместить вниз", "Переместить вверх" можно было обратиться к первоначальной версии последовательности строк.
По умолчанию идентификатор совпадает с индексом строки, и может перестать совпадать, после использования команд "Переместить вниз", "Переместить вверх
Gigi @ Сегодня, 11:45
, Ну а что пишет то? вместо 1000 лишних слов лучше бы текст ошибки написали. Первый вариант у вас рабочий, ищите ошибку -1) проверяйте имена реквизитов 2) проверяйте таблица на форме и ваша табличная часть связаны или нет 3) строки в таблице то хоть есть?
Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда // раз есть результат значит уже есть документ Выборка = Результат.Выбрать(); Выборка.Следующий(); Сообщить("В этот день уже есть "+Строка(Выборка.Колво)+" документов."); Отказ = Истина; Возврат; КонецЕсли;
Noviscok @ Сегодня, 10:22
, Давайте по шагам: 1) Все необходимые для этого действия пишем в модуле объекта документа в процедуре "Обработка проведения" 2) Для того чтобы что-то записать в регистр, нужно выбрать необходимые данные, для этого вам и нужен Запрос. Можно делать это так как делали вы в первом посте - напрямую читать данные из табличной части и писать их в регистр, но это считается неоптимальным, т.к. при каждом обращении к реквизитам таб. части идет обращение к базе, по сути это лишняя нагрузка. Поэтому лучше делать через запрос. Для этого нужно в запросе выбрать поля, которые вас интересуют, указать источник данных - это ваша таблица документа, и указать что мы берем конкретный текущий документ - то условие про которое я писал постом выше (конструкция "ГДЕ"). 3) После того как запрос есть, нам необходимо передать все параметры в запрос, это то что идет со значком "&" 4) После этого запрос готов к выполнению, выполняем его и получаем выборку нужных нам данных. За это отвечают строки
Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать();
5) Дальше вам необходимо прочитать из этой выборки каждую строку, для этого делаем цикл по выборке
Пока Выборка.Следующий() Цикл
КонецЦикла;
6) В цикле вы добавляете каждую запись в регистр.
Движение = Движения.Регистр.Добавить(); Движение.Период = Дата; Движение.Осадки = Выборка.Осадки; Движение.МинТемпература = Выборка.МинТемпература; Движение.МаксТемпература = Выборка.МаксТемпература; // и т.д. все поля которые нужно записать в регистр. // P.S. естественно для записи в регистр у вас там должны быть соотвествующие поля "Осадки ", "МинТемпература", "МаксТемпература "
Noviscok @ Сегодня, 9:25
, Запрос никаких "движений" и не должен делать, он данные выбирает. Во-вторых, у вас в запросе нет условия по ссылке на документ, у вас данные будут тянуться со всех документов. Нужно добавить отбор по текущему документу:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |СУММА(КоличествоОсадков) КАК Осадки, |МИНИМУМ(Температура) КАК МинТемпература, |МАКСИМУМ(Температура) КАК МаксТемпература, |СРЕДНЕЕ(Температура) КАК СреднееЧисло |ИЗ |Документ.РезультатНаблюдений.Наблюдение |ГДЕ | ссылка = &ТекущийДокумент |СГРУППИРОВАТЬ ПО |Ссылка.Дата";
// а потом обходить результат запроса: Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Движение = Движения.Регистр.Добавить(); Движение.Период = Дата; Движение.Осадки = Выборка.Осадки; // и т.д. КонецЦикла;
illiona @ Сегодня, 8:58
, Сохраните имена ваших колонок при формировании в какой-то массив, а дальше где нужно берите с этого массива элементы и так как Vofka написал, через имя колонки обращайтесь к значению. Пример:
// создание колонок ТЗ = Новый ТаблицаЗначений; МассивКолонок = Новый Массив; Инд=1; Пока Инд <= 5 Цикл ТЗ.Колонки.Добавить("Колонка"+Строка(Инд)); МассивКолонок.Добавить("Колонка"+Строка(Инд)); КонецЦикла;
// ... тут где-то заполняем таблицу данными
// а потом где нужно получить значение каких-то колонок Для Каждого СтрокаТЗ Из ТЗ цикл Для Каждого ИмяКолонки Из МассивКолонок Цикл Сообщить(СтрокаТЗ[ИмяКолонки]); КонецЦикла; КонецЦикла;
пардон, ошибочка в предыдущем посте
// создание колонок ТЗ = Новый ТаблицаЗначений; МассивКолонок = Новый Массив; Инд=1; Пока Инд <= 5 Цикл ТЗ.Колонки.Добавить("Колонка"+Строка(Инд)); МассивКолонок.Добавить("Колонка"+Строка(Инд)); Инд = Инд + 1; КонецЦикла;
// ... тут где-то заполняем таблицу данными
// а потом где нужно получить значение каких-то колонок Для Каждого СтрокаТЗ Из ТЗ цикл Для Каждого ИмяКолонки Из МассивКолонок Цикл Сообщить(СтрокаТЗ[ИмяКолонки]); КонецЦикла; КонецЦикла;
podcast @ Сегодня, 11:07
, когда ставите ОбменДанными = Истина, то не выполняются всякие проверки, которые идут в событии ПередЗаписью ,т.к. в самом начале процедуры почти во всех типовых документах стоит проверка
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли;
т.е. все что идет после этого условия по сути не выполнеятся. Если ваш кусок кода который проверяет дату запрета находится после этого блока - значит он не выполнится
Ну что братцы. Если кому-то придется мудохаться с подобной хренью, то методом тыка установил, что таблица с Налоговыми накладными это "FJ1201002_MAIN" Может кому-то пригодится на будущее.
info230a02 @ Сегодня, 10:30
, Добавьте в документ Реализация Товаров и услуг реквизит "ДокументОснование" с типом "ДокументСсылка.ПоступлениеТоваровУслуг". При создании на основании заполняйте этот реквизит ссылкой на поступление. В Конфигурации в "Критериях отбора" -> "Связанные документы" проставьте галочку по созданному реквизиту и будет вам счастье
Володька @ Сегодня, 15:53
, 1. Проверяю права на документ, реквизиты (Справочники и т.д.), которые использует 2. Проверяю права на регистры 3. Если не помогло, ищу какие константы используются при проведении, проверяю права на них. 4. Если и это не помогло - разбиваю монитор и выкидываю его в окно
valse25 @ Сегодня, 9:41
, В регистре сведений "Ответственные лица организации" должна быть запись по вашему обособленному подразделению, с ответственным лицом = "Кассир" - тогда потянет этого человека, иначе тянет ответственное лицо по Организации
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!