Вопрос № 100878: Дело следующее. На компе клиента стояла БП 8.0.18.2 с двумя базами.
После поломки пришли добрые люди из "скорой помощи" и соответственно все отформатили, винду коряво поставили и оказали массу медвежьих услуг. Короче, восстановил два ф...Вопрос № 100882: Здравствуйте!!!
Подскажите, есть ли в восьмерке аналог процедуры ВводНового() из семерки, которая возникает при вводе нового документа, что-то в предопределенных процедурах я ничего не нашел...Вопрос № 100883: Здравствуйте уважаемые эксперты. В очередной раз к вам за помощью. Проблема с запросом (часть процедуры в приложении). Происходит выборка данных из журнала расчетов, и все бы хорошо, но только как у сотрудника встречается в одном периоде несколько за...Вопрос № 100884: Разбираюсь со стандартным отчетом "Расчеты с контрагентами" (1С 7.7). Не могу понять как в таблице задана расшифровка ячеек. В свойствах ячейки поле расшифровка пустое. процедура обработка ячейки таблицы вызывается из глобального модуля. Но...Вопрос № 100890: Здравствуйте!!!
1с 8
У меня на форме есть реквизит клиент, как програмно найти этот элемент в справочнике, присвоить уже реквизиту этого элемента другое значение и записать?...Вопрос № 100959: Здравствуйте эксперты! Снова обращаюсь к вам за помощью!
Подскажите советом, в журнале документов вставил колонку "Текст", теперь вопрос, возможно ли сделать так, чтобы пользователи могли интерактивно ставить галочки в этой колонке на п...Вопрос № 100960: В восьмерке недавно, с запросами тоже не работал. Отсюда вопрос: почему не работает конструкция такого вида? Не будет работать конструкция и если я уберу функцию ВЫРАЗИТЬ - ругается на синтаксис. Как правильно в конструкции ВЫБОРа выводить выражения ...
Вопрос № 100.878
Дело следующее. На компе клиента стояла БП 8.0.18.2 с двумя базами.
После поломки пришли добрые люди из "скорой помощи" и соответственно все отформатили, винду коряво поставили и оказали массу медвежьих услуг. Короче, восстановил два файла 1cd (от обоих баз) размером около 80 мегов каждые. Создаю пустую базу замещаю 1cd одним из восстановленных, но при загрузке ругается: файл поврежден! Собственно к вопросу: есть ли у кого утилита работы с 1cd файлами, которая бы показывала какие куски целые, какие нет, по возможности исправляла? Заранее спасибо!
Отвечает: Townsman
Здравствуйте, Самсонов Андрей Юрьевич!
Дело в том, что 1cd-файлы состоят не из "кусков", а имеют единую структуру, напоминающую базу данных MS Access. Это было сделано для повышения "взломоустойчивости" базы, в отличие от 7,7 с dbf-файлами, которые нормально защитить нельзя в принципе. Во-первых, попробуйте не заместить пустую базу восстановленной, а подключиться к существующей. Если она хоть как-то загрузится, то проще всего использовать обработку ВыгрузкаЗагрузкаДанныхXML.epf (имеется на дисках ИТС), т.е. выгрузить все, что
удастся, в xml-файл, затем создать пустую базу и таким же образом в нее это дело загрузить. Если же не происходит загрузка исходных файлов, то придется заменять базу на резервную копию. Удачи.
Ответ отправил: Townsman (статус: 9-ый класс)
Ответ отправлен: 05.09.2007, 07:59
Отвечает: BigHard
Здравствуйте, Самсонов Андрей Юрьевич!
Врядли после форматирования у вас что-то получится. Дело в том, что ни одна из программ восстановления удаленных файлов не может корректно восстановить удаленные ДБФ файлы 1с, тем более МД, корректно восстанавливаются только текстовые файлы баз и еще несколько ненужных типов, а они нам не нужны.
У меня было несколько подобных случаев, ни в одном ничего ен получилось. Восстановитесь из последней резервной копии, если она есть конечно....
--------- Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра
Ответ отправил: BigHard (статус: Студент)
Ответ отправлен: 05.09.2007, 10:41
Отвечает: Яна
Здравствуйте, Самсонов Андрей Юрьевич!
Рекомендую Вам бросить это гиблое дело, вернуться к резервной копии и вбить все недостающие в ней документы. Будет быстрей и эффективней.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 05.09.2007, 14:34
Вопрос № 100.882
Здравствуйте!!!
Подскажите, есть ли в восьмерке аналог процедуры ВводНового() из семерки, которая возникает при вводе нового документа, что-то в предопределенных процедурах я ничего не нашел
Отправлен: 05.09.2007, 08:50
Вопрос задал: BigHard (статус: Студент)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Vovchai
Здравствуйте, BigHard!
в процедуре ПриОткрытии() выполняйте проверку через ЭтоНовый()
Ответ отправил: Vovchai (статус: 4-ый класс)
Ответ отправлен: 05.09.2007, 08:59 Оценка за ответ: 5 Комментарий оценки: спасибо
Отвечает: Цыбань Евгений Вячеславович
Здравствуйте, BigHard!
Аналогом этой процедуры для документа служит событие (процедура) формы документа ПриОткрытии()
В этой процедуре следует использовать следующую конструкцию
Если ЭтоНовый() Тогда // проверить объект на то, что он еще не внесен в ИБ
Эта же конструкция справедлива и для справочников, планов видов характеристик, видов расчета и плана счетов.
Эту конструкцию так же можно использовать и в других событиях документов и справочников, например в событии формы ПередОткрытием() или в модуле документа в событии ПередЗаписью() или ПриЗаписи(), хотя в типовых конфигурациях 1С эта конструкция используется в ПриОткрытии()
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, BigHard!
есть метод ЭтоНовый() в процедуре при открытии() вставляется и узнается что открывается новый документ
Ответ отправил: Ромашов Евгений Николаевич (статус: 4-ый класс)
Ответ отправлен: 05.09.2007, 10:21 Оценка за ответ: 5
Вопрос № 100.883
Здравствуйте уважаемые эксперты. В очередной раз к вам за помощью. Проблема с запросом (часть процедуры в приложении). Происходит выборка данных из журнала расчетов, и все бы хорошо, но только как у сотрудника встречается в одном периоде несколько записей с одинаковым видом расчета по результатам процедуры я вижу только одну. Как решить эту проблему…
Приложение:
Отправлен: 05.09.2007, 08:52
Вопрос задал: PaTiFoN (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: IUnknown
Здравствуйте, PaTiFoN!
убрать группировку Рассчет
--------- я не специалист
Ответ отправил: IUnknown (статус: Студент)
Ответ отправлен: 05.09.2007, 09:35 Оценка за ответ: 3 Комментарий оценки: Не то...
Отвечает: Elric
Здравствуйте, PaTiFoN!
В результате запроса Вы получите уникальные комбинации "Вид расчета - Период регистрации". Далее есть два варианта, в зависимости от того, какой эффект Вам нужен.
1) Если Вам нужен Сумма результатов по всем одинаковым комбинациям, то в текст Запроса необходимо добавить строку: Функция Сумма = Сумма(Результат);
(см. в Синтакс-Помощнике "Язык Запросов", Функция)
Обращаться к сумме в модуле можно будет как Запрос.Сумма. Например, в журнале расчетов есть две записи с видом расчета Оклад (в периоде регистрации 01.07.2007) и результатами 120 и 220 соответственно. Тогда запрос тебе выдаст одну комбинацию "Оклад - 01.07.2007" и Запрос.Сумма=340.
2. Если же нужно именно перебирать все записи журнала расчетов, то нужно добавить группировку ТекущаяЗапись = ЖурналРасчетов.Зарплата.ТекущаяЗапись;
и добавить дополнительный уровень вложенного цикла чтобы обходить и эту группировку. Но думается мне нужен именно первый вариант, сумма по одинаковым записям :)
Кстати, я обратил внимание на заполнение таблицы значений. Дело в том, что периодов регистрации для разных видов расчетов может быть неодинаковое количество, и сами периоды могут отличаться. Обращение просто по номеру колонки без проверки, с каким периодом мы имеем дело, может привести к смешению данных.
--------- В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 05.09.2007, 10:08 Оценка за ответ: 5 Комментарий оценки: Спасибо!!! Все работает. Мне нужен первый вариант... А проблему с таблицей я решу другим способом.
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, PaTiFoN!
все правильно группировка складывает суммы по одинаковым видам расчета. если надо видеть отдельно то придется группировку документ вводить в запрос
Ответ отправил: Ромашов Евгений Николаевич (статус: 4-ый класс)
Ответ отправлен: 05.09.2007, 10:20 Оценка за ответ: 4 Комментарий оценки: Как раз то что ничего не складовалось, без ответа Elric.
Вопрос № 100.884
Разбираюсь со стандартным отчетом "Расчеты с контрагентами" (1С 7.7). Не могу понять как в таблице задана расшифровка ячеек. В свойствах ячейки поле расшифровка пустое. процедура обработка ячейки таблицы вызывается из глобального модуля. Но все равно как-то указывается что для этой ячейки или группы ячеек естьрасшифровка.
К сожалению у меня нет данного отчета. Судя по всему у Вас конфигурация ТиС.
1) Но Вы уже сами почти ответили на свой вопрос. Если Вы знаете что ОбработкаЯчейкиТаблицы() вызывается из глобального модуля, то посмотрите, что написано в этой процедуре. Кроме того прочитайте описание процедуры в синтакс-помощнике, помоему, довольно подробно все описано. Т.е. при вызове процедуры ОбработкаЯчейкиТаблицы() в качестве параметра "Значение" в процедуру передается значение ячейки. И в зависимости от типа значения процедура выполняет то или иное действие. Если значением ячейки будет документ,
то откроется этот документ, если список значений - вызовется какой-нибудь стандартный отчет(в зависимости от параметров списка значений). Другими словами, при двойном клике на ячейке Вы получаете: 1) значение ячейки 2) адрес ячейки и 3) контекст таблицы. Имея эти данные Вы можете делать практически все. Для этого вам достаточно написать в теле процедуры в модуле отчета ОбработкаЯчейкиТаблицы() свой код.
2) Кроме того, таблица(область таблицы) имеет атрибут "Расшифровка". Куда вы можете указать значение для расшифровки произвольной ячейки программно:
Таб = СоздатьОбъект("Таблица");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Расшифровка(ВыбДокумент, 1).
3) и последнее... очень часто, особенно в стандартных отчетах указывают значение расшифровки для всей строки. Например, обычно, только в первой колонке отчета указывается значение расшифровки "Расшифровка#", что означает, что данная расшифровка применяется ко всей(!) строке. Т.е. в других колонках значение расшифровки указывать необязательно(пустое).
Ответ отправил: svsrus (статус: 7-ой класс)
Ответ отправлен: 05.09.2007, 09:49
Отвечает: Цыбань Евгений Вячеславович
Здравствуйте, Оксана/kasy!
В расшифровке ячеек данного отчета скорее всего использована конструкция типа ТекРасшифровка#
Решетка в конце выражения означает, что расшифровка ячейки распостраняется на все ячейки строки для которых не задана расшифровка.
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Оксана/kasy!
если при наведение мышка переключается на лупу значит есть расшифровка, если в свойствах нет надо проверить вывод секции может там где - нибудь расшифровка задается
расшифровка задана в первой ячеке каждой строки для всей строки
Ответ отправил: Dmitry Stashenko (статус: 9-ый класс)
Ответ отправлен: 05.09.2007, 13:19 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ. Нашла я эту ячейку.
Вопрос № 100.890
Здравствуйте!!!
1с 8
У меня на форме есть реквизит клиент, как програмно найти этот элемент в справочнике, присвоить уже реквизиту этого элемента другое значение и записать?
Отправлен: 05.09.2007, 10:20
Вопрос задал: BigHard (статус: Студент)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Vovchai
Здравствуйте, BigHard!
если я правильно понял то:
Элемент = Реквизит.ПолучитьОбъект();
Элемент.НазваниеРеквизитаЭлемента = НужноеЗначение;
Элемент.Записать();
Ответ отправил: Vovchai (статус: 4-ый класс)
Ответ отправлен: 05.09.2007, 10:26 Оценка за ответ: 5 Комментарий оценки: Вы все абсолютно правильно поняли, спасибо
Отвечает: Sidorov A.
Здравствуйте, BigHard!
Пример с выборкой из справочника.
Приложение:
Ответ отправил: Sidorov A. (статус: 1-ый класс)
Ответ отправлен: 05.09.2007, 17:24
Вопрос № 100.959
Здравствуйте эксперты! Снова обращаюсь к вам за помощью!
Подскажите советом, в журнале документов вставил колонку "Текст", теперь вопрос, возможно ли сделать так, чтобы пользователи могли интерактивно ставить галочки в этой колонке на против нуйжной строчки (как в таблице значений)?
Благодарен всем откликнувшимся!
Отправлен: 05.09.2007, 17:05
Вопрос задал: Vlad® (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Татьяна Ласовская
Здравствуйте, Vlad®!
В табличной части документа в свойствах есть закладка “Картинка”. В ней нужно выбрать картинку (или коллекцию картинок).
Для отображения пиктограммы в колонке нужно в ее свойствах поставить птичку “выводить пиктограммы”. А дальше при присвоении числового значения в поле данной колонки будет выведане пиктограмма с порядковым номером из коллекции пиктограмм, присвоенной таблице.
Коллекция пиктограмм - это картинки размером 16х16, идущие одна за одной.
Ответ отправила: Татьяна Ласовская (статус: 9-ый класс)
Ответ отправлен: 05.09.2007, 17:59 Оценка за ответ: 4 Комментарий оценки: Спасибо, я не могу сообразить как сделать в Журнале документов, чтобы пользователь сам ставил галочки, например напротив проведенного документа?
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Vlad®!
Да нет проблем (в 7.7)
Добавьте в все документы (или в общие реквизиты) реквизит шапки СтоитПтичка Число,1,0
В свойстве текста процедуру ВывестиТекст()
Функция ВывестиТекст()
Если ТекущийДокумент.Выбран()=1 Тогда
Если ТекущийДокумент.СтоитПтичка=1 Тогда Возврат "+";
Иначе Возврат "";
Таким образом, Вы будете плюсиком (аналогом птички ) отмечать документы.
Ну и наконец, на форме журнала сделайте кнопочку, которая делает ТекущийДокумент.СтоитПтичка равным 1 или 0.
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Практикант)
Ответ отправлен: 05.09.2007, 18:16 Оценка за ответ: 5 Комментарий оценки: Спасибо за отличный ответ, единственное не получается, это если добавляю кнопку на форму журнала. Если же кнопка (для проверки) на форме документа то все отлично!
Отвечает: Elric
Здравствуйте, Vlad®!
Двойным щелчком галочку Вы не поставите. Нужно делать отдельную кнопку, которая устанавливала бы признак для конкретного документа. В качестве признака может выступать значение реквизита (как предложил Шахрайчук Владимир Анатольевич), либо если галочки нужны временно то признаки могут храниться в списке значений (переменная в модуле журнала документов).
--------- В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 05.09.2007, 18:40
Вопрос № 100.960
В восьмерке недавно, с запросами тоже не работал. Отсюда вопрос: почему не работает конструкция такого вида? Не будет работать конструкция и если я уберу функцию ВЫРАЗИТЬ - ругается на синтаксис. Как правильно в конструкции ВЫБОРа выводить выражения с применением арифметических операторов? Заранее благодарен за ответ.
Приложение:
Отправлен: 05.09.2007, 17:15
Вопрос задал: Sidorov A. (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Полозов Олег aka Asher
Здравствуйте, Sidorov A.!
Если в запросе поле не имеет значения, это означает что оно равно NULL, тогда
ваша конструкция будет примерно такая:
ВЫБОР
КОГДА ФактКолвоТТ.ВсегоТТФактически = NULL
ТОГДА 0
ИНАЧЕ 2*ВЫРАЗИТЬ(КолвоАктивныхТТФлейкс.АктивныеТТФлейкс КАК Число) КОНЕЦ
Ответ отправил: Полозов Олег aka Asher (статус: 9-ый класс)
Ответ отправлен: 06.09.2007, 02:58 Оценка за ответ: 5 Комментарий оценки: Спасибо. В целом на самом деле конструкция выглядит так: ВЫБОР КОГДА ФактКолвоТТ.ВсегоТТФактически ЕСТЬ NULL ТОГДА 0 ИНАЧЕ 100 * ФактКолвоТТ.ВсегоТТФактически, но именно Ваша поправка мне помогла. С уважением... КОНЕЦ